简答题
👁️ 浏览量:

试题题干

在数据库 mysql_test 的表 customers 中创建触发器 customers_insert_trigger,用于每次向表 customers 插入一行数据时,将用户变量 str 的值设置为新插入客户的 cust_id号。写出相应SQL语句。

参考答案

试题解析

在MySQL中,可以使用CREATE TRIGGER语句创建触发器,常用的语法格式是:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body
INSERT触发器可在INSERT语句执行之前或之后执行。使用该触发器时,需要注意:
(1) 在INSERT触发器代码内,可引用一个名为NEW(不区分大小写)的虚拟表,来访问被插入的行。
(2) 对于AUTO_INCREMENT列,NEW在INSERT执行之前包含的是0值,在INSERT执行之后将包含新的自动生成值。 

在本题中,首先,在MySQL 命令行客户端输入如下SQL语句:
mysql>CREATE TRIGGER mysql_test.customers_insert_trigger AFTER INSERT
        -> ON mysql_test.customers FOR EACH ROW SET @str=NEW.cust_id;
Query OK, 0 rows affected (0.34 sec)
然后,在MySQL 命令行客户端使用 INSERT 语句向表 customers 插入例如:('曾伟', 'F', '长沙', '芙蓉区')一行数据: 

mysql>INSERT INTO mysql_test.customers
        -> VALUES(NULL, '曾伟', 'F', '长沙', '芙蓉区');
Query OK, 1 rows affected (0.11 sec)
最后,在MySQL 命令行客户端输入如下SQL语句验证触发器:
mysql>SELECT @str;