Menggunakan Pencetus MySQL untuk Mengemas kini Lajur dengan Nilai ID
Pencetus MySQL membolehkan anda melakukan tindakan tertentu secara automatik apabila peristiwa tertentu berlaku dalam jadual pangkalan data. Dalam kes ini, kami ingin mencipta pencetus yang mengemas kini nilai lajur kepada nilai ID rekod yang baru dimasukkan jika lajur itu batal.
Pernyataan SQL untuk mencipta pencetus sedemikian akan kelihatan seperti ini:
CREATE TRIGGER [trigger_name] BEFORE INSERT ON [table_name] FOR EACH ROW BEGIN IF NEW.group_id IS NULL THEN SET NEW.group_id = NEW.id; END IF; END
Pencetus ini akan menyala sebelum sebarang operasi INSERT pada jadual yang ditentukan. Ia menyemak sama ada lajur group_id adalah batal untuk rekod baharu. Jika ya, ia menetapkan group_id kepada nilai lajur id, iaitu kunci utama yang dijana secara automatik.
Contoh
Pertimbangkan jadual berikut:
CREATE TABLE table_name ( id INT NOT NULL AUTO_INCREMENT, group_id INT NULL, value VARCHAR(255) NOT NULL, PRIMARY KEY (id) );
Apabila memasukkan rekod dengan group_id yang ditentukan:
INSERT INTO table_name(value, group_id) VALUES ('a', 10);
picu tidak akan dilaksanakan dan data akan dimasukkan seperti yang dijangkakan:
id | group_id | value ---+----------+------ 1 | 10 | a
Walau bagaimanapun , apabila memasukkan rekod tanpa menyatakan group_id:
INSERT INTO table_name(value) VALUES ('b');
picu akan menyala dan menetapkan group_id kepada ID rekod yang baru dimasukkan:
id | group_id | value ---+----------+------ 2 | 2 | b
Nota: Adalah penting untuk memastikan bahawa pencetus hanya mengemas kini lajur group_id jika ia batal untuk mengelak daripada menulis ganti nilai sedia ada.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Lajur secara Automatik dengan Nilai ID Menggunakan Trigger MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!