PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wstaw dane do tabel połączonych kluczem obcym

Możesz to zrobić w jednym zestawieniu sql dla obecnych klientów, 3 zestawieniach dla nowych. Wystarczy być optymistą i zachowywać się tak, jakby klient już istniał:

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

Jeśli klient nie istnieje, otrzymasz wyjątek sql, którego tekst będzie wyglądał następująco:

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

(pod warunkiem, że identyfikator_klienta nie może mieć wartości null, co na pewno tak zrobiłeś). W przypadku wystąpienia tego wyjątku wstaw klienta do tabeli klientów i ponów wstawianie do tabeli zamówień:

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

O ile Twoja firma nie rozwija się w tempie, które sprawi, że jedynym prawdziwym problemem będzie „gdzie umieścić wszystkie pieniądze”, większość Twoich wkładek będzie przeznaczona dla obecnych klientów. Tak więc w większości przypadków wyjątek nie wystąpi i wystarczy jedna instrukcja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgAdmin III Dlaczego wyniki zapytań są skracane?

  2. Wyświetlaj tabele w schemacie PostgreSQL

  3. Wybierz kolumny z określonymi nazwami kolumn w PostgreSQL

  4. Zmień typ danych kolumny na serial

  5. Wkładka wielorzędowa z obietnicą pg