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