sql >> Databáze >  >> RDS >> PostgreSQL

Vložit data do tabulek propojených cizím klíčem

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.



  1. Sloupec neexistuje?

  2. 11 funkcí pro získání dne, měsíce a roku z data v MariaDB

  3. Začínáme s GearHost pro vývoj databáze MySQL

  4. Výkon UUID v MySQL?