Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Berbilang Jadual MySQL dalam Satu Transaksi?
Masukkan MySQL ke dalam Berbilang Jadual
Percubaan untuk memasukkan data ke dalam berbilang jadual dengan satu pertanyaan MySQL mungkin menghasilkan hasil yang tidak dijangka. Walaupun nampaknya berbilang pertanyaan akan menyelesaikan isu ini, mengaitkan ID autokenaikan daripada jadual pengguna kepada ID pengguna manual untuk jadual profil memberikan cabaran.
Menggunakan Transaksi dan LAST_INSERT_ID()
Untuk memasukkan ke dalam beberapa jadual dalam satu transaksi, gunakan yang berikut pendekatan:
BEGIN; INSERT INTO users (username, password) VALUES('test', 'test'); INSERT INTO profiles (userid, bio, homepage) VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com'); COMMIT;
Menyimpan ID AutoTambahan dalam Pembolehubah
Sebagai alternatif, menyimpan ID autokenaikan dalam pembolehubah membenarkan rujukannya dalam pertanyaan seterusnya. Ini boleh dicapai menggunakan:
Pembolehubah MySQL:
INSERT INTO ... SELECT LAST_INSERT_ID() INTO @mysql_variable_here; INSERT INTO table2 (@mysql_variable_here, ...);
PHP pembolehubah:
INSERT ... $result = mysql_query("SELECT LAST_INSERT_ID()"); $id = mysql_result($result, 0); INSERT INTO table2 ($id, ...);
Pertimbangan Transaksi
Tidak kira pendekatan yang dipilih, pertimbangkan potensi kesan pelaksanaan tergendala. Sekiranya tiada transaksi, ketidakkonsistenan mungkin timbul dalam pangkalan data anda. Untuk mengelakkan ini, bungkus penyata sisipan dalam transaksi, seperti yang ditunjukkan di atas.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Cekap ke dalam Berbilang Jadual MySQL dalam Satu Transaksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!