PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Używanie reguły do ​​wstawiania do sekwencji automatycznych przyrostów tabeli drugorzędnej

Całkowicie zapomnij o zasadach. Są złe .

Wyzwalacze są dla Ciebie o wiele lepsze. A w 99% przypadków, gdy ktoś uważa, że ​​potrzebuje reguły. Spróbuj tego:

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();

Następnie:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak usunąć wszystkie bazy danych poza kilkoma w postgresie

  2. Format czasu Rails Activerecord/Postgres

  3. Wybierz zapytanie z limitem przesunięcia jest zbyt wolne

  4. Wyszukiwania/zapytania bez uwzględniania wielkości liter

  5. python dodaje E do łańcucha