完整性
用户定义的完整性
check
check()只要语句合法即可写
create table Student( Sno char(9) primary key, Sname char(8) not null, Ssex char(2) check (Ssex in('男','女')), Sage int check(Sage<200&&Sage>0) )
constraint
使用:对check起别名
优点:可以使用drop删除
断言
chcek的高级版,可以使用评断条件可以使用复杂句子(sql语句)
缺点:
频繁的调用会极大的影响程序的性能,增加额外的开销。
(慎重使用,即时删除)
语句:
create assertion<断言名><check子句>;
drop assertion<断言名>;
触发器Trigger
当用户进行增删改,查询操作对服务器进行触发,
CREATE TRIGGER语法格式
CREATE TRIGGER <触发器名>
{BEFORE | AFTER} <触发事件> ON <表名>
REFERENCING NEW|OLD ROW AS<变量>
FOR EACH {ROW | STATEMENT}
[WHEN <触发条件>]<触发动作体>
触发器又叫做事件-条件-动作(event-condition-action)规则。
CREATE TRIGGER ADDSore AFTER UPDATE OF Grade ON SC REFERENCING OLD row AS OldTuple, NEW row AS NewTuple FOR EACH ROW WHEN (NewTuple.Grade >= 1.1*OldTuple.Grade&&NewTuple.Grade<=100) NewTuple.Grade=1.1*OldTuple.Grade WHEN (NewTuple.Grade >= 1.1*OldTuple.Grade&&NewTuple.Grade>100) NewTuple.Grade=100 INSERT INTO SC_U(Sno,Cno,OldGrade,NewGrade) VALUES(OldTuple.Sno,OldTuple.Cno,OldTuple.Grade,NewTuple.Grade)
激活/屏蔽触发器
Enable trigger t_name on teacher
Disble trigger t_name on teacher
删除触发出
drop trigger <触发器名> on <表名>
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16076200.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步