WEB开发网
开发学院数据库MySQL MySQL 5.0-触发器(参考) 阅读

MySQL 5.0-触发器(参考)

 2007-02-13 10:52:08 来源:WEB开发网   
核心提示: 6. Syntax: Statement 语法:语句CREATE TRIGGER <触发器名称>{ BEFORE | AFTER }{ INSERT | UPDATE | DELETE }ON <表名称>FOR EACH ROW<触发的SQL语句> &l

6. Syntax: Statement 语法:语句

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发的SQL语句> <--

触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句,包括复合语句,但是这里的语句受的限制和函数的一样。

Privileges权限

你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER)。如果你已经是Root用户,那么就足够了。这跟SQL的标准有所不同,我也希望能尽快改成标准的。

因此在下一个版本的MySQL中,你完全有可能看到有一种叫做CREATE TRIGGER的新权限。然后通过这样的方法赋予:

GRANT CREATE TRIGGER ON <表名称> TO <用户或用户列表>;

也可以通过这样收回权限:

REVOKE CREATE TRIGGER ON <表名称> FROM <用户或用户列表>;

Referring to OLD and NEW columns 关于旧的和新创建的列的标识

在触发器的SQL语句中,你可以关联表中的任意列。但你不能仅使用列的名称去标识,那会使系统混淆,因为那里可能会有列的新名(这可能正是你要修改的,你的动作可能正是要修改列名),还有列的旧名存在。因此你必须用这样的语法来标识:

"NEW . column_name"或者"OLD . column_name".这样在技术上处理(NEW | OLD . column_name)新和旧的列名属于创建了过渡变量("transition variables")。

对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。下面是一个UPDATE中同时使用NEW和OLD的例子。

上一页  1 2 3 4 5 6 7  下一页

Tags:MySQL 触发器 参考

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接