触发器:
和存储过程比较
1、 共同点
针对表的操作(SQL语句集合)
2、 区别点
不需要调用
触发器在当前版本里不太稳定,不建议在有重要数据的数据库里使用
约束:
目的:保证数据的安全(独立性、共享性)排除数据冗余性;
域完整性约束(列):数据类型、格式、值域范围(enum 、set)、是否为空、主键、自动增长等;
实体完整性约束(行):自己整理
用户自定义约束:
例如:年龄 int 0-100
参照完整性约束:外键
练习:使用触发器完成check约束
1、 创建触发器
语法:
create procedure 名称(参数)
begin
流程控制语句
SQL语句集合
End
create trigger 名称 触发时间(after|before) 触发事件(insert、update、delete)
on 表名 for each row
begin
局部变量、用户变量等;
流程控制语句;
SQL语句集合;
Call 存储过程名();
End
实例操作1:对t1创建触发器,执行插入语句后,将用户变量str赋值“working”;
实例操作2:对t1(字段s1)创建触发器,删除数据后,将t2(字段s2)里对应的记录同步删除;
第一步:创建触发器
create trigger t1_delete after delete on t1 for each row
delete from t2 where s2=OLD.s1;
第二步:激活触发器
delete from t1;
第三步:验证结果
Select * from t2;
实例操作3:创建表t3(s3 char(8)),该字段对记录的要求为,必须以’A’为开头
例如:insert into t3 values(‘Ax’);
使用触发器来实现该约束
Insert来验证
删除触发器:
Show triggers;
Drop trigger trigger_name;
实例操作4:
t1(s1 int)
t2(s2 int)
记录:30,60,90
当t1表里修改数据后小于60,则在t2表将对应记录改为0;
大于60,………………………………2;
CREATE TRIGGER T1_UPDATE AFTER UPDATE ON
T1 FOR EACH ROW
UPDATE T2 SET S2=0;
注意:同一张表进行更新可不可以使用after?为什么?
事务、用户(创建、权限分配)、数据的导入导出、安全等
分享到:
相关推荐
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
SQL触发器操作.sql 数据库操作的最好说明书
Oracle触发器操作.pptx
Oracle11g教程_第9章_触发器操作 ppt
Oracle第9章触发器操作
主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下
内含sql数据库和各种功能的触发器与存储过程的sql文件
这是DB2触发器的PPT 希望大家通过这个PPT更容易入门
JDBC创建触发器 JDBC存储过程 JDBC创建表 数据备份 java备份数据库/JAVA恢复数据、java导入sql脚本
在MySQL数据库中,数据库对象表是存储和操作数据的逻辑结构,而数据库对象触发器则用来实现由一些表事件触发的某个操作。在数据库系统中,当执行表事件时,则会激活触发器,从而执行器包含的操作。触发器的操作...
根据用户新增和修改操作,触发器自动生成记录,用来记录用户的操作。(说明展开表,找到触发器右击新建触发器即可-新增和修改要分开创建)
利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。