Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengemas kini Jadual MySQL Selepas Pencetus INSERT Tanpa Ralat?

Bagaimanakah Saya Boleh Mengemas kini Jadual MySQL Selepas Pencetus INSERT Tanpa Ralat?

Susan Sarandon
Lepaskan: 2024-12-27 00:54:17
asal
632 orang telah melayarinya

How Can I Update a MySQL Table After an INSERT Trigger Without Errors?

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:

  1. Buat Simpanan Prosedur:
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
Salin selepas log masuk
  1. Panggil Prosedur Tersimpan:

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:

  • Mengelakkan pengehadan mengemas kini jadual yang sama dalam pencetus.
  • Membenarkan fleksibiliti dan kawalan yang lebih besar ke atas transaksi.
  • Memudahkan pelaksanaan berbilang operasi (cth., memasukkan dan mengemas kini) dalam satu transaksi.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan