Pencetus dan Kemas Kini Jadual dalam MySQL
Apabila cuba mengemas kini jadual yang sama selepas operasi INSERT menggunakan pencetus, pengguna mungkin menghadapi ralat "Tidak dapat mengemas kini AKAUN jadual ... sudah digunakan oleh pernyataan yang menggunakan pencetus ini." Had ini berpunca daripada sekatan terhadap pengubahsuaian jadual yang sedang digunakan oleh pernyataan pencetus.
Untuk menyelesaikan isu ini, anda tidak boleh bergantung sepenuhnya pada pencetus. Sebaliknya, prosedur tersimpan harus dibuat untuk mengendalikan kedua-dua tindakan INSERT dan kemas kini dalam satu transaksi. Dengan melakukan perubahan secara manual menggunakan prosedur tersimpan, pengguna boleh memintas kekangan yang dikenakan oleh pencetus.
Langkah-Langkah untuk Melaksanakan Penyelesaian Prosedur Tersimpan:
CREATE PROCEDURE update_accounts_status(IN new_account_pk BIGINT) AS BEGIN -- Insert new account INSERT INTO ACCOUNTS (user_id, edit_on, status) VALUES (?, ?, 'A'); -- Update old account UPDATE ACCOUNTS SET status = 'E' WHERE pk = ?; -- Commit changes COMMIT; END
Daripada menggunakan pencetus, prosedur tersimpan boleh dipanggil INSERT ke dalam jadual AKAUN. Ini memastikan kedua-dua tindakan sisipan dan kemas kini dilaksanakan dengan jayanya dan dilakukan dalam satu transaksi.
Kelebihan Menggunakan Prosedur Tersimpan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Jadual MySQL Selepas Pencetus INSERT Tanpa Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!