sql >> Databáze >  >> RDS >> PostgreSQL

Použití pravidla k vložení do sekundární tabulky automaticky zvýší sekvenci

Zapomeňte úplně na pravidla. Jsou špatné .

Spouštěče jsou pro vás mnohem lepší. A v 99 % případů, kdy si někdo myslí, že potřebuje pravidlo. Zkuste toto:

create table users (
  userid serial primary key,
  username text
);

create table lastlogin (
  userid int primary key references users(userid),
  lastlogin_time timestamp with time zone
);

create or replace function lastlogin_create_id() returns trigger as $$
  begin
    insert into lastlogin (userid) values (NEW.userid);
    return NEW;
  end;
$$
language plpgsql volatile;

create trigger lastlogin_create_id
  after insert on users for each row execute procedure lastlogin_create_id();

Potom:

insert into users (username) values ('foo'),('bar');

select * from users;
 userid | username 
--------+----------
      1 | foo
      2 | bar
(2 rows)
select * from lastlogin;
 userid | lastlogin_time 
--------+----------------
      1 | 
      2 | 
(2 rows)



  1. Jak vyhledat přesné číslo v php

  2. Jak uložím hodnoty korelace mezi uživateli v databázi pomocí MySQL a PHP?

  3. Jak vybrat poslední záznam z tabulky MySQL pomocí syntaxe SQL

  4. Zaznamenejte změny záznamu na serveru SQL do auditní tabulky