Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara memasukkan data ke beberapa tabel dengan dependensi kunci asing yang terlibat (MySQL)

Singkatnya, Anda ingin menggunakan transaksi (lebih banyak dokumen tentang ini) sehingga sisipan Anda atomik . Ini adalah satu-satunya cara untuk menjamin bahwa semua (atau tidak ada) data Anda akan dimasukkan. Jika tidak, Anda bisa masuk ke situasi yang Anda jelaskan di mana database menjadi tidak tersedia setelah beberapa penyisipan dan yang lainnya tidak dapat diselesaikan. Sebuah transaksi memberi tahu database bahwa apa yang Anda lakukan adalah semua-atau-tidak sama sekali dan oleh karena itu transaksi akan mundur jika terjadi kesalahan.

Saat Anda menggunakan kunci primer sintetis, sebagaimana adanya, PHP dan bahasa lain menyediakan mekanisme untuk mendapatkan id yang dimasukkan terakhir. Jika Anda ingin melakukannya sepenuhnya di MySQL, Anda dapat menggunakan LAST_INSERT_ID() fungsi. Anda akan mendapatkan kode seperti ini:

START TRANSACTION;
INSERT INTO foo (auto,text)
    VALUES(NULL,'text');         # generate ID by inserting NULL
INSERT INTO foo2 (id,text)
    VALUES(LAST_INSERT_ID(),'text');  # use ID in second table
COMMIT;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql pilih tidak bangun untuk bidang varchar

  2. bagaimana cara mengimpor file csv ke mysql dari aplikasi hibernate+spring?

  3. Bagaimana saya bisa menghapus entri duplikat dalam tabel catatan yang diarsipkan?

  4. Kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda

  5. Buat Beberapa tabel MySQL menggunakan PHP