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. स्प्रिंगबूट पोस्टग्रेज उपयुक्त ड्राइवर वर्ग निर्धारित करने में विफल

  2. PostgreSQL तालिका बनाएँ

  3. क्या PostgreSQL के लिए psycopg2 या sqlalchemy से VACUUM ANALYZE <tablename> जारी करना संभव है?

  4. पोस्टग्रेज टेक्स्ट सर्च

  5. CSV फ़ाइल डेटा को PostgreSQL तालिका में कैसे आयात करें?