您的位置:首页 > 数据库 > MySQL

mysql触发器的使用和语法

2013-07-27 18:02 246 查看
1.触发器的基本语法:

 

Create trigger  <触发器名>   {before|after}  {insert|update|delete}   on {表名}  for each

Row <触发器sql语句>

 

首先明白触发器是属于某一个表的,由于在表的插入,删除,修改的前后所引发的的操作。而且同一个表的同一个事件不能有2个触发器

 

2.给触发器设置权限:

Gank create trigger on <表名> to 用户

 

3.回收权限:

Revoke create trigger on 表明 from 用户

 

 

4.删除触发器

 drop TRIGGER
触发器名

5.触发器的修改可以删除后重新创建一遍。

 

6.触发器、存储过程和函数三者有何区别?(下面一段摘录网上)

 

触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求

触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。

 

使用触发器的优点

触发器的优点如下:

 

触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。

 

 

触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。

 

 

触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。例如,触发器可以回滚试图对价格低于 10 美元的书(存储在titles 表中)应用折扣(存储在discounts 表中)的更新。

 

function和存储过程是不一样的

函数作为代码的模块,用于完成一个特定的功能,而我们可以在SQL SERVER中调用函数来实现我们要的整体功能

 

而存储过程的作用就是要实现我们的整体功能,他可以调用函数来实现

function可以在查询中使用,procedure却不可以!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: