Menggunakan Transaksi untuk Sisipan Data Berbilang Jadual
Pangkalan data perhubungan selalunya memerlukan memasukkan data merentas berbilang jadual. Walaupun satu pertanyaan tidak dapat menangani perkara ini secara langsung, transaksi menyediakan penyelesaian yang mantap.
Pendekatan Transaksi
Transaksi pangkalan data menganggap satu siri operasi sebagai unit atom tunggal. Jika mana-mana operasi dalam urus niaga gagal, keseluruhan set operasi akan dibuat asal (digulung semula), mengekalkan integriti data.
Untuk memasukkan data ke dalam berbilang jadual secara transaksi:
<code class="language-sql">START TRANSACTION; -- Insert statement for table 1 -- Insert statement for table 2 COMMIT;</code>
Melampirkan INSERT
pernyataan dalam blok START TRANSACTION; ... COMMIT;
memastikan ketekalan data. Sama ada semua sisipan berjaya, atau tiada, menghalang kemas kini separa yang boleh merosakkan hubungan data.
Contoh Ilustrasi
Mari kita pertimbangkan untuk memasukkan data ke dalam jadual names
dan phones
(seperti dalam soalan asal). Pendekatan transaksi akan kelihatan seperti ini:
<code class="language-sql">START TRANSACTION; INSERT INTO names (id, first_name, last_name) VALUES (1, 'John', 'Doe'); INSERT INTO phones (number, name_id) VALUES ('123-456-7890', 1); COMMIT;</code>
Ini memastikan bahawa kedua-dua nama dan nombor telefon yang berkaitan dimasukkan, atau tidak, mengekalkan integriti rujukan.
Nota Penting: Sintaks yang tepat untuk pengurusan transaksi (START TRANSACTION
, COMMIT
, berpotensi ROLLBACK
) boleh berbeza sedikit bergantung pada sistem pangkalan data khusus anda (MySQL, PostgreSQL, SQL Server, dsb. .). Rujuk dokumentasi pangkalan data anda untuk mendapatkan arahan yang tepat.
Atas ialah kandungan terperinci Bagaimanakah Transaksi Memastikan Integriti Data Apabila Memasukkan Data ke dalam Jadual Berbilang Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!