DELIMITER // 可以用來將語句的分號(;)改為//。現在您可以在觸發器中使用分號編寫多個語句。
這是觸發器的示範。在此範例中,每當您輸入的EmployeeSalary小於1000時,它將預設為10000。
首先,讓我們建立一個表格。建立表格的查詢如下 -
mysql> create table EmployeeTable -> ( -> EmployeeId int, -> EmployeeName varchar(100), -> EmployeeSalary float -> ); Query OK, 0 rows affected (0.76 sec)
建立表格後,需要在插入命令上建立觸發器。建立觸發器的查詢如下。
mysql> delimiter // mysql> create trigger CheckSalary before insert on EmployeeTable -> for each row if new.EmployeeSalary < 1000 then set -> new.EmployeeSalary=10000; -> end if; -> // Query OK, 0 rows affected (0.40 sec) mysql> delimiter ;
現在您可以使用插入命令來檢查觸發器。如果插入的EmployeeSalary小於1000,則不會出現任何錯誤,但它將儲存一個預設值,我給的是10000。
插入記錄的查詢如下 -
mysql> insert into EmployeeTable values(1,'Carol',500); Query OK, 1 row affected (0.25 sec)
現在使用select語句檢查表中的所有記錄。查詢如下。
mysql> select *from EmployeeTable;
以下是輸出。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Carol | 10000 | +------------+--------------+----------------+ 1 row in set (0.00 sec)
如果您輸入 1000 或大於 1000,則只會顯示您的號碼。我已使用 truncate 命令從表中刪除了先前的記錄。
mysql> truncate table EmployeeTable; Query OK, 0 rows affected (1.44 sec)
在表格中插入記錄的查詢。
mysql> insert into EmployeeTable values(2,'Bob',1000); Query OK, 1 row affected (0.14 sec) mysql> insert into EmployeeTable values(3,'Carol',2500); Query OK, 1 row affected (0.19 sec)
這是使用 select 語句檢查表中所有記錄的查詢。
mysql> select *from EmployeeTable;
以下是輸出。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+ 2 rows in set (0.00 sec)
看看上面的範例輸出,EmployeeSalary 大於或等於 1000。這將給出您的工資。請記住,如果小於 1000,則預設值設定為 10000。
以上是DELIMITER // 在 MySQL 的觸發器中扮演什麼角色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!