关于mysql触发器的问题

现在我经常会调用delete from A where state='500';这条命令
然后在A表创建一个触发器,在'delete'之前,执行插入数据,把要删除的数据插入另一个表中。这可行吗?要怎么实现?
还有什么更好的方法可以实现?

刚学数据库,不太会,可能描述不清楚,谢谢各位大牛抽出时间解答。

5个回答

一条 或 多条触发

create trigger [A_delete]
on [dbo].[A]
for delete
as

begin distributed transaction
SET XACT_ABORT on

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
BEGIN

    Insert into B (字段名) 
    select 字段名 from inserted order by ID asc;

end
commit tran

可以实现的,你参考上面的去试试,不过上面是sqlserver的吧,可以参考这个区改改

BEGIN

IF id IS NULL THEN

INSERT INTO B VALUES();

END
IF;

写的时候要勾选before delete!
图片说明
大概就是这样,多调一下就好了

create trigger [A_delete]
on [dbo].[A]
for delete
as

begin distributed transaction
SET XACT_ABORT on

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
BEGIN

Insert into B (字段名) 
select 字段名 from inserted order by ID asc;

end
commit tran

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问