Fahami konsep asas dan penggunaan pencetus MySQL
MySQL trigger ialah jenis prosedur tersimpan khas Ia mentakrifkan satu siri tindakan pada jadual dalam pangkalan data, yang akan dicetuskan secara automatik apabila syarat pencetus dipenuhi. Aktifkan pelaksanaan. Melalui pencetus, operasi automatik pada jadual pangkalan data boleh direalisasikan, seperti melaksanakan logik yang sepadan apabila sisipan, kemas kini, pemadaman dan tindakan lain berlaku.
Struktur sintaks asas pencetus MySQL adalah seperti berikut:
CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name FOR EACH ROW BEGIN -- 触发器执行的逻辑代码 END;
Dalam struktur sintaks di atas, nama pencetus ditentukan oleh SELEPAS
kata kunci, tindakan yang dicetuskan ditentukan oleh INSERT
, KEMASKINI
atau DELETE</code > kata kunci, di mana pencetusnya adalah Jadual ditentukan oleh <code>table_name
, UNTUK SETIAP BARIS
bermakna setiap baris dicetuskan sekali dan pencetus adalah antara BEGIN</ kod> dan <code>END
kod logik yang dilaksanakan oleh pemproses. trigger_name
指定,触发器的执行时间由BEFORE
或AFTER
关键字指定,触发的动作由INSERT
、UPDATE
或DELETE
关键字指定,触发器所在的表由table_name
指定,FOR EACH ROW
表示每一行触发一次,BEGIN
和END
之间为触发器执行的逻辑代码。
下面通过几个具体的代码示例来说明MySQL触发器的用法:
假设有两张表users
和logs
,用户在users
表中插入新数据时,需要在logs
表中自动插入一条相关的日志记录。可以通过以下触发器来实现:
CREATE TRIGGER after_insert_user AFTER INSERT ON users FOR EACH ROW BEGIN INSERT INTO logs(user_id, action, timestamp) VALUES(NEW.id, 'Insert user', NOW()); END;
假设有一张products
表,当更新某个产品的信息时,需要记录下修改前后的信息。可以通过以下触发器来实现:
CREATE TRIGGER after_update_product AFTER UPDATE ON products FOR EACH ROW BEGIN INSERT INTO product_logs(product_id, old_name, new_name, old_price, new_price, timestamp) VALUES(NEW.id, OLD.name, NEW.name, OLD.price, NEW.price, NOW()); END;
假设有两张表orders
和order_details
CREATE TRIGGER after_delete_order AFTER DELETE ON orders FOR EACH ROW BEGIN DELETE FROM order_details WHERE order_id = OLD.id; END;
order_details
, apabila memadamkan pesanan, butiran pesanan yang sepadan perlu dipadamkan secara berperingkat. Ini boleh dicapai melalui pencetus berikut: 🎜rrreee🎜Melalui contoh di atas, anda boleh melihat peranan dan penggunaan pencetus MySQL. Pencetus boleh membantu kami melaksanakan logik perniagaan automatik semasa operasi pangkalan data dan meningkatkan kebolehpercayaan dan kecekapan pangkalan data. Apabila mereka bentuk pangkalan data, penggunaan rasional pencetus boleh memudahkan logik kod, mengurangkan operasi berulang dan meningkatkan kebolehselenggaraan dan kebolehskalaan sistem. 🎜Atas ialah kandungan terperinci Fahami konsep asas dan penggunaan pencetus MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!