Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengemas kini Lajur secara Automatik dengan Nilai ID Menggunakan Trigger MySQL?

Bagaimana untuk Mengemas kini Lajur secara Automatik dengan Nilai ID Menggunakan Trigger MySQL?

Susan Sarandon
Lepaskan: 2024-11-07 19:36:02
asal
265 orang telah melayarinya

How to Automatically Update a Column with the ID Value Using a MySQL Trigger?

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
Salin selepas log masuk

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)
);
Salin selepas log masuk

Apabila memasukkan rekod dengan group_id yang ditentukan:

INSERT INTO table_name(value, group_id) VALUES ('a', 10);
Salin selepas log masuk

picu tidak akan dilaksanakan dan data akan dimasukkan seperti yang dijangkakan:

id | group_id | value
---+----------+------
 1 |       10 | a
Salin selepas log masuk

Walau bagaimanapun , apabila memasukkan rekod tanpa menyatakan group_id:

INSERT INTO table_name(value) VALUES ('b');
Salin selepas log masuk

picu akan menyala dan menetapkan group_id kepada ID rekod yang baru dimasukkan:

id | group_id | value
---+----------+------
 2 |        2 | b
Salin selepas log masuk

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!

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