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

किसी तालिका में INSERT पर कनेक्टेड तालिकाओं में डेटा सम्मिलित करें

pgAdmin सिर्फ जीयूआई है। आपका मतलब है PostgreSQL , RDBMS

एक विदेशी कुंजी बाधा , जैसे आपने केवल यह लागू किया है कि किसी भी मूल्य का उपयोग नहीं किया जा सकता है, जो संदर्भित कॉलम में मौजूद नहीं है। आप ON UPDATE CASCADE use का उपयोग कर सकते हैं या ON DELETE CASCADE संदर्भित कॉलम से परिवर्तनों को प्रचारित करने के लिए, लेकिन आप नई पंक्तियाँ नहीं बना सकते हैं इसके साथ जैसा आप वर्णन करते हैं। आपको गलत टूल मिल गया है।

आप जो वर्णन करते हैं, उसे ट्रिगर से हासिल किया जा सकता है। . दूसरा, अधिक जटिल तरीका होगा RULE . यहां एक ट्रिगर के साथ जाएं।

PostgreSQL में आपको एक ट्रिगर फ़ंक्शन की आवश्यकता होती है , अधिकतर plpgsql का उपयोग कर रहे हैं , और एक ट्रिगर एक मेज पर जो इसका उपयोग करती है।

कुछ इस तरह:

CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
  RETURNS trigger AS
$func$
BEGIN
   INSERT INTO tbl2 (my_id, col1)
   VALUES (NEW.my_id, NEW.col1)     -- more columns?

   RETURN NEW;  -- doesn't matter much for AFTER trigger
END
$func$  LANGUAGE plpgsql;

और एक ट्रिगर AFTER INSERT tbl1 . पर :

CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();


  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 - एक संख्यात्मक क्षेत्र में सेकंड को HH:MM:SS . में कैसे बदलें

  3. मेरे पसंदीदा पोस्टग्रेएसक्यूएल प्रश्नों में से अधिक - और वे भी क्यों मायने रखते हैं

  4. Postgresql में सभी टेबल के लिए ट्रिगर कैसे बनाएं?

  5. PL/PGSQL से सत्र चर (\set var='value') का जिक्र करते हुए