单选题
👁️ 浏览量:

试题题干

在MySQL中,可以使用 CREATE TRIGGER 语句创建触发器,关于其语法格式的说法中错误的是()

A

语法项“trigger_name”用于指定触发器的名称,触发器在当前数据库中必须具有唯一的名称。

B

语法项“trigger_time”用于指定触发器被触发的时刻,它有两个选项,即关键字“BEFORE”和关键字“AFTER”

C

语法项“trigger_event”用于指定触发事件,其可以是下述值之一:关键字“INSERT”、“UPDATE”、“DELETE”

D

语法项“tbl_name”用于指定与触发器相关联的表名,可以是永久表也可以是临时表

参考答案

正确答案:

试题解析

在MySQL中,可以使用 CREATE TRIGGER 语句创建触发器,其常用的语法格式是:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body 

(1) 语法项“trigger_name”用于指定触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称。 故A对。
(2) 语法项“trigger_time”用于指定触发器被触发的时刻,它有两个选项,即关键字“BEFORE”和关键字“AFTER”,用于表示触发器是在激活它的语句之前或之后触发。如果希望验证新数据是否满足使用的限制,则使用BEFORE选项;如果希望在激活触发器的语句执行之后完成几个或更多的改变,通常使用AFTER选项。 故B对。
(3) 语法项“trigger_event”用于指定触发事件,即指定激活触发器的语句的种类,其可以是下述值之一:关键字“INSERT”,表示将新的数据行插入到表时激活触发器;关键字“UPDATE”,表示更改表中某一行数据时激活触发器;关键字“DELETE”,表示从表中删除某一行数据时激活触发器。故C对。
(4) 语法项“tbl_name”用于指定与触发器相关联的表名,必须引用永久性表,不能将触发器与临时表或视图关联起来,且同一个表不能拥有两个具有相同触发时刻和事件的触发器。 故D错。
(5) 关键字“FOR EACH ROW”用于指定对于受触发事件影响的每一行都要激活触发器的动作。
(6) 语法项“trigger_body”用于指定触发器动作主体。