扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可以先禁用触发器关闭它,不行的话就删除,然后再删除信息,最后在启动触发器,如果触发器不能删除的话,kill用过没有
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的景谷网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
删除触发器,DROP TRIGGER trigger_name;当然你要有相关权限。
装个pl/sql,更简单。
删除表的时候“应该”不会删除响应的触发器的。为验证,你可以验证下,记得验证了告诉我哈。
验证方法:
删除表后查询相关触发器:语句
SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT,
TABLE_OWNER, BASE_OBJECT_TYPE, REFERENCING_NAMES,
STATUS, ACTION_TYPE
FROM all_triggers where TRIGGER_NAME=your_trigger_name;
如果你把他们建在了一个模式下,或者能确定什么时间以后创建的对象都不要了,那么就可以写一个脚本一口气全删除了
否则就很难了,不如重装一下
触发器是没问题的,检查数据吧,把你表里的数据,和执行删除的语句发上来才好,自测没问题。
create table student
(id int,
class_id int);
create table classes
(id int,
student_count int);
insert into student values (1,1);
insert into student values (2,1);
insert into student values (3,1);
insert into student values (4,2);
insert into student values (5,2);
insert into student values (6,3);
insert into classes values (1,3);
insert into classes values (2,1);
insert into classes values (3,1);
commit;
执行删除后:
delete from student where id=3;
commit;
结果:
此种处理方式无法实现
1,经测试在A触发器中,满足条件,写入B表,再删除A,删除的这个操作不能进行。
2,换个思路,在A添加触发器,满足条件,写入B,在B表上也添加触发器,满足条件,删除A,同样无法进行。
换个处理方式:
写入A,满足条件,再写入B, 再删除A, 那么写入A的时候就是个多余的动作。
最好的处理方式,不符合条件的写入A,符合条件的直接写入B
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流