DELIMITER // 在 MySQL 的觸發器中扮演什麼角色?

WBOY
發布: 2023-08-26 10:41:07
轉載
2300 人瀏覽過

DELIMITER // 在 MySQL 的触发器中起什么作用?

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,&#39;Carol&#39;,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,&#39;Bob&#39;,1000);
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeTable values(3,&#39;Carol&#39;,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中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!