PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Masukkan Data Ke Tabel yang Ditautkan oleh Kunci Asing

Anda dapat melakukannya dalam satu pernyataan sql untuk pelanggan yang sudah ada, 3 pernyataan untuk yang baru. Yang harus Anda lakukan adalah menjadi optimis dan bertindak seolah-olah pelanggan sudah ada:

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

Jika pelanggan tidak ada, Anda akan mendapatkan pengecualian sql yang teksnya akan seperti:

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

(asalkan Anda membuat customer_id tidak dapat dibatalkan, yang saya yakin Anda lakukan). Ketika pengecualian itu terjadi, masukkan pelanggan ke dalam tabel pelanggan dan ulangi penyisipan ke tabel pesanan:

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

Kecuali jika bisnis Anda tumbuh pada tingkat yang akan membuat "di mana harus meletakkan semua uang" satu-satunya masalah Anda yang sebenarnya, sebagian besar sisipan Anda akan ditujukan untuk pelanggan yang sudah ada. Jadi, sebagian besar waktu, pengecualian tidak akan terjadi dan Anda akan selesai dalam satu pernyataan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menggunakan kueri dengan placeholder di dalam tanda kutip? (perl/postgresql)

  2. Menyortir pohon dengan jalur terwujud?

  3. Cara Mengubah Pengguna menjadi Pengguna Super di PostgreSQL

  4. PostgreSQL array_agg order

  5. Kembalikan Nilai Non-Numerik dari Kolom Database PostgreSQL