MySQL 觸發器是一種特殊的存儲過程,可以在數據表上自動執行。使用觸發器可以在特定的條件下執行一組操作。本文將介紹如何創建一個 MySQL 觸發器,包括語法和示例。
在 MySQL 中,創建觸發器需要使用 CREATE TRIGGER 語句。下面是 CREATE TRIGGER 語法的基本結構:
CREATE TRIGGER trigger_name {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON table_name FOR EACH ROW trigger_body
下面是在 MySQL 中創建觸發器的示例代碼:
CREATE TRIGGER `users_insert_update` BEFORE INSERT ON `users` FOR EACH ROW BEGIN IF (NEW.username='admin') THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '不能插入管理員用戶'; END IF; -- 設置 created_at 和 updated_at 的值 SET NEW.created_at = NOW(); SET NEW.updated_at = NOW(); END;
代碼解釋:
CREATE TRIGGER
:創建 TRIGGER。`users_insert_update`
:指定觸發器的名稱。BEFORE INSERT ON `users`
:指定觸發器在 INSERT 語句執行之前觸發,并且只觸發在表users
上。FOR EACH ROW
:指定針對每行數據觸發。BEGIN
和END
:指定觸發器的主體語句。IF (NEW.username='admin') THEN
:如果插入的新用戶的用戶名等于“admin”。SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '不能插入管理員用戶';
:拋出一個錯誤,顯示不能插入管理員用戶。SET NEW.created_at = NOW();
和SET NEW.updated_at = NOW();
:設置created_at
和updated_at
的值為當前時間。
以上就是在 MySQL 中創建觸發器的介紹。可以根據需要修改代碼來適應不同的場景。