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

WBOY
发布: 2023-08-26 10:41:07
转载
2301 人浏览过

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学习者快速成长!