PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chèn dữ liệu vào bảng được liên kết bằng khóa ngoại

Bạn có thể làm điều đó trong một câu lệnh sql cho khách hàng hiện tại, 3 câu lệnh cho khách hàng mới. Tất cả những gì bạn phải làm là trở thành một người lạc quan và hành động như thể khách hàng đã tồn tại:

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

Nếu khách hàng không tồn tại, bạn sẽ nhận được một ngoại lệ sql, văn bản sẽ giống như sau:

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

(với điều kiện bạn đã đặt customer_id là không thể nullable, mà tôi chắc chắn là bạn đã làm như vậy). Khi ngoại lệ đó xảy ra, hãy chèn khách hàng vào bảng khách hàng và thực hiện lại việc chèn vào bảng đơn hàng:

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

Trừ khi doanh nghiệp của bạn đang phát triển với tốc độ khiến cho việc "bỏ tiền vào đâu" là vấn đề thực sự duy nhất của bạn, còn lại hầu hết các quảng cáo của bạn sẽ dành cho khách hàng hiện tại. Vì vậy, hầu hết thời gian, ngoại lệ sẽ không xảy ra và bạn sẽ được thực hiện trong một câu lệnh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn đệ quy Postgres với row_to_json

  2. Postgres tương tự như ÁP DỤNG CHÉO trong SQL Server

  3. POSTGRESQL Khóa chính tham chiếu khóa nước ngoài của hai bảng khác nhau

  4. Cách kiểm tra xem một bảng có tồn tại trong một lược đồ nhất định hay không

  5. Công bố Barman 1.0, Trình quản lý sao lưu và phục hồi cho PostgreSQL