Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธาสร้างและใช้งาน MySQL Trigger


สร้าง trigger ใหม่ด้วยคำสั่ง CREATE TRIGGER ไวยากรณ์:

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN ... END;

รายละเอียด:

  • Trigger_name — ชื่อ trigger วางหลัง CREATE TRIGGER แนะนำรูปแบบ [trigger_time]_[table_name]_[trigger_event] เช่น before_student_update
  • Trigger_time — เวลาทำงาน: BEFORE (ก่อนเปลี่ยนแปลง) หรือ AFTER (หลังเปลี่ยนแปลง) ต้องระบุเสมอ
  • Trigger_event — เหตุการณ์ที่กระตุ้น: INSERT, UPDATE, หรือ DELETE trigger หนึ่งตัวต่อเหตุการณ์เดียว
  • Table_name — ชื่อตารางที่ trigger ผูกไว้ ระบุหลังคำว่า ON
  • BEGIN...END — บล็อกกำหนดตรรกะการทำงานของ trigger

ตัวอย่าง

สร้างตาราง Student_age แล้วสร้าง trigger ก่อน INSERT หากอายุติดลบ ให้ตั้งเป็น 0:

mysql> Create table Student_age(age INT, Name Varchar(35));
Query OK, 0 rows affected (0.80 sec)
mysql> DELIMITER //
mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END //
Query OK, 0 rows affected (0.30 sec)

ทดสอบ trigger:

mysql> INSERT INTO Student_age(age, Name) values(30, 'Rahul');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO Student_age(age, Name) values(-10, 'Harshit');
Query OK, 1 row affected (0.11 sec)
mysql> Select * from Student_age;
+------+---------+
| age  | Name    |
+------+---------+
| 30   | Rahul   |
| 0    | Harshit |
+------+---------+
2 rows in set (0.00 sec)

แถวที่สอง INSERT อายุ -10 ถูก trigger เปลี่ยนเป็น 0 อัตโนมัติ