Можете да го направите с едно 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);
Освен ако вашият бизнес не расте със скорост, която ще направи "къде да вложите всички пари" единственият ви реален проблем, повечето от вашите вложки ще бъдат за съществуващи клиенти. Така че през повечето време изключението няма да се случи и ще приключите с едно изявление.