PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използване на правило за вмъкване във вторична таблица Автоматично нарастваща последователност

Забравете напълно правилата. Те саза .

Тригерите са много по-добри за вас. И в 99% от случаите, когато някой смята, че има нужда от правило. Опитайте това:

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

След това:

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. Обединяване на връзки на Postgres Npgsql

  2. PostgreSQL:ST_GeomFromText(unknown) не съществува

  3. Преброяване на поява на стойности в сериализиран атрибут (масив) в таблото за управление на Active Admin (Rails, Active admin 1.0, Postgresql база данни, postgres_ext gem)

  4. PostgreSQL получава и освобождава LOCK вътре в съхранената функция

  5. Postgres:проверете дали полето на масива съдържа стойност?