在 MySQL 的觸發器中,DELIMITER // 是什麼作用?
DELIMITER // 可以用來將語句的分隔符從分號 (;) 更改為 //。現在你可以在觸發器中使用多個帶分號的語句。
以下是觸發器的演示。在這個例子中,每當你輸入 EmployeeSalary 小於 1000 時,它將預設設定為 10000。
首先,讓我們建立一個表。建立表的查詢如下 -
mysql> create table EmployeeTable -> ( -> EmployeeId int, -> EmployeeName varchar(100), -> EmployeeSalary float -> ); Query OK, 0 rows affected (0.76 sec)
建立表後,你需要在 insert 命令上建立一個觸發器。建立觸發器的查詢如下。
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 ;
現在你可以使用 insert 命令檢查觸發器。如果你插入 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。
廣告