DELIMITER // 在 MySQL 的触发器中做什么?
DELIMITER//可用于将语句从分号(;)更改为//。现在您可以在触发器中编写多个带分号的语句。
这是触发器的演示。在此示例中,每当您输入的EmployeeSalary小于1000时,它就会默认设置为10000。
首先,让我们创建一个表。创建表的查询如下-
mysql> create table EmployeeTable -> ( -> EmployeeId int, -> EmployeeName varchar(100), -> EmployeeSalary float -> );
创建表后,您需要在插入命令上创建触发器。创建触发器的查询如下。
mysql> delimiter // mysql> create trigger CheckSalary before insert on EmployeeTable -> for each row ifnew.EmployeeSalary< 1000 then set -> new.EmployeeSalary=10000; -> end if; -> // mysql> delimiter ;
现在您可以使用插入命令检查触发器。如果您插入的EmployeeSalary小于1000,那么它不会给出任何错误,但它会存储我给出的默认值10000。
插入记录的查询如下-
mysql> insert into EmployeeTable values(1,'Carol',500);
现在使用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;
在表中插入记录的查询。
mysql> insert into EmployeeTable values(2,'Bob',1000); mysql> insert into EmployeeTable values(3,'Carol',2500);
这是使用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。