PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

अन्य तालिका में डालने से मूल्य डालें पोस्टग्रेज

इस तरह के इंसर्ट चेनिंग के लिए आपको एक सामान्य टेबल एक्सप्रेशन की आवश्यकता है:

with ta as (
  INSERT INTO tbl_b (status) VALUES ('OK') 
  RETURNING id
)
INSERT INTO tbl_a (name, tbl_b_reference) 
VALUES ('myName', (select id from ta));

एक अन्य विकल्प केवल lastval() . का उपयोग करना है अंतिम उत्पन्न अनुक्रम मान को संदर्भित करने के लिए फ़ंक्शन:

INSERT INTO tbl_b (status) VALUES ('OK');
INSERT INTO tbl_a (name, tbl_b_reference) 
  VALUES ('myName', lastval());

ध्यान दें कि आपके पास कोई अन्य कथन नहीं होना चाहिए जो उन दोनों के बीच अनुक्रम मान उत्पन्न करता हो।

या currval() फ़ंक्शन का उपयोग करें:

INSERT INTO tbl_b (status) VALUES ('OK');
INSERT INTO tbl_a (name, tbl_b_reference) 
  VALUES ('myName', currval('tbl_b_id_seq'));

'tbl_b_id_seq' एक मानक नाम है जिसे Postgres एक अनुक्रम के लिए उपयोग करता है जो एक serial . के लिए बनाया गया है कॉलम:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में वर्तमान समय कैसे प्राप्त करें

  2. एक चयन में डुप्लिकेट बाद के रिकॉर्ड को फ़िल्टर करना

  3. पोस्टग्रेज में IF कंडीशन के आधार पर टेबल कैसे छोड़ें?

  4. PostgreSQL प्रारंभ नहीं होगा:server.key के पास समूह या विश्व पहुंच है

  5. स्लीक + पोस्टग्रेस्क्ल पर पेजिनेटेड सेलेक्ट कैसे करें