trigger的使用说明有提到可以替代foriegn key的功能. 比如分布式数据库里两张表不在一个库又存在相互的依赖关系,可以用trigger来检查外健. 不过我比较迷惑这个功能具体是怎么实现的. 我理解是操作的本体(增删改)是写在存储过程/函数里. trigger作为额外的部分,会在函数触发(增删改)之前执行自己的代码做检查.可是问题是,如果检查到不合法的操作,trigger如何来中断函数的运行呢?
解决方案 »
- sql一列转一行显示
- 求助:为什么我用游标从A表里数据插入B表 A表最后一条记录都会插B表中2遍 求解决
- 我如何选择Oracle组件安装呢/
- 两个不同服务器上复制表出现ORA-01652错误,是指源数据库还是指目标数据库?
- 关于oracle 表分区问题,假如某省每个县的数据建一个分区,要建一百多个分区,会不会影响效率
- 关于字符编码的问题。
- 在plsql developer中执行脚本半天没反应的问题
- 把一个字段中的blob内容通过存储过程复制到另外一个blob字段该怎么做?
- oracle怎么那么难用?!!
- 还原数据库
- Select Count(*)的解决
- ORACLE数据库如何启动,停止?如何备份?
那就抛出异常raise_application_error()来中断。
同时回滚。
if 不合法 then
rollback;
raise_application_error();
end if;