Můžete to udělat v jednom SQL výpisu pro stávající zákazníky, 3 výpisy pro nové. Jediné, co musíte udělat, je být optimistou a chovat se, jako by zákazník již existoval:
insert into "order" (customer_id, price) values \
((select customer_id from customer where name = 'John'), 12.34);
Pokud zákazník neexistuje, dostanete výjimku SQL, jejíž text bude něco jako:
null value in column "customer_id" violates not-null constraint
(za předpokladu, že jste provedli zákaznické id bez hodnoty null, což jsem si jistý). Když nastane tato výjimka, vložte zákazníka do tabulky zákazníků a zopakujte vložení do tabulky objednávek:
insert into customer(name) values ('John');
insert into "order" (customer_id, price) values \
((select customer_id from customer where name = 'John'), 12.34);
Pokud vaše podnikání neroste tempem, které způsobí, že „kam dát všechny peníze“ bude vaším jediným skutečným problémem, většina vašich vložek bude pro stávající zákazníky. K výjimce tedy většinou nedojde a budete hotovi jedním příkazem.