MySQL รองรับ foreign key สำหรับ referential integrity แต่ **ไม่รองรับ CHECK constraint** สามารถจำลองได้ด้วย trigger ตัวอย่าง:
ตัวอย่าง
ตาราง car คอลัมน์ number ต้องมีรูปแบบคงที่: 2 ตัวอักษร - 3 หลัก - 2 ตัวอักษร (เช่น AB-123-CD)
mysql> Create table car (number char(9)); Query OK, 0 rows affected (0.32 sec)
หาก UPDATE ด้วยค่าผิดรูปแบบ MySQL ไม่หยุด:
mysql> update car set number='AB-2X5-YZ'; Query OK, 1 row affected (0.04 sec)
สร้าง BEFORE UPDATE trigger ตรวจสอบรูปแบบด้วย regex:
mysql> delimiter //
mysql> create trigger car_update_value before update on car
-> for each row
-> begin
-> if new.number not rlike '^[[:alpha:]]{2}-[[:digit:]]{3}-[[:alpha:]]{2}$'
-> then
-> signal sqlstate '45000' set message_text = 'Not a valid number';
-> end if;
-> end //
Query OK, 0 rows affected (0.11 sec)
mysql> Delimiter ;
mysql> update car set number='AB-2X5-YZ';
ERROR 1644 (45000): Not a valid number
Trigger ป้องกันการ UPDATE ค่าที่ไม่ตรงรูปแบบได้สำเร็จ