我在phpMyAdmin中使用Mysql,我必须从tableA中删除一个条目,如果我插入了具有相同主键的行。我想在tableA的触发器中执行该操作前插入 对于防爆, 如果表A中包含在Mysql中修改表从它自己的触发器 - PhpMyAdmin
1 Hai Hello
这里1是主键
现在,如果我插入一行1 Bye Hello
则触发BEFORE INSERT将删除旧的条目,然后新行(第2个)将被插入。但是Mysql限制了无法更新为同一个表定义的触发器中的表。
它给人的错误
#1442 - 因为它已经使用由调用 此存储函数/触发语句存储 功能/触发无法更新表“表A”。
所以我改变了我的方式,我从tableA的BEFORE INSERT调用了一个过程,并且在那个过程中我做了我认为在触发器中做的任务。但不幸的是,我得到了同样的错误。 在触发BEFORE INSERT我只是调用的过程作为
CALL proce1(new.Reg_No);
在过程我已经做到了这一点
DECLARE toup integer;
select count(*) into toup from tableA where Reg_No=reg;/*Here Reg_No is primary key */
if toup > 0 then
delete from tableA where Reg_No=reg;
end if;
需要一些其他的想法来实现这一目标。帮我.....
你为什么要删除?你想要替换旧数据还是真的删除记录? – Jaylen 2014-10-29 18:11:57
@Mike我想删除旧记录并插入新记录。我只是从.csv文件插入新的值这里旧值不能更新,所以我想在插入前删除它 – user3784251 2014-10-29 18:15:11