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

विदेशी कुंजी द्वारा लिंक की गई तालिकाओं में डेटा डालें

आप इसे मौजूदा ग्राहकों के लिए एक sql स्टेटमेंट में, नए के लिए 3 स्टेटमेंट में कर सकते हैं। आपको बस एक आशावादी बनना है और ऐसा व्यवहार करना है जैसे ग्राहक पहले से मौजूद है:

insert into "order" (customer_id, price) values \
((select customer_id from customer where name = 'John'), 12.34);

अगर ग्राहक मौजूद नहीं है, तो आपको एक sql अपवाद मिलेगा जो टेक्स्ट कुछ इस तरह होगा:

null value in column "customer_id" violates not-null constraint

(बशर्ते आपने customer_id को अशक्त बना दिया हो, जो मुझे यकीन है कि आपने किया था)। जब वह अपवाद होता है, तो ग्राहक को ग्राहक तालिका में सम्मिलित करें और क्रम तालिका में सम्मिलित करें फिर से करें:

insert into customer(name) values ('John');
insert into "order" (customer_id, price) values \
((select customer_id from customer where name = 'John'), 12.34);

जब तक आपका व्यवसाय उस दर से नहीं बढ़ रहा है जो आपकी एकमात्र वास्तविक समस्या "सभी पैसे कहां रखे" बना देगा, आपके अधिकांश सम्मिलन मौजूदा ग्राहकों के लिए होंगे। इसलिए, अधिकांश समय, अपवाद नहीं होगा और आपको एक ही कथन में कर दिया जाएगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या डेटा प्रकार NUMERIC स्टोर हस्ताक्षरित मानों को पोस्टग्रेज़ कर सकता है?

  2. string_agg () से परिणाम कैसे क्रमबद्ध करें

  3. Postgres . का उपयोग करके एक बार में 3 तालिकाओं में डेटा डालें

  4. PSQLException:त्रुटि:संबंध TABLE_NAME मौजूद नहीं है

  5. PostgreSQL में समय क्षेत्र के साथ/बिना टाइमस्टैम्प के बीच अंतर