Mysql';语句级';触发你可以用两个技巧来做
我搜索了很多次,想找到一些技巧或解决方法,在MySQL中创建一个类似Oracle的“语句级”触发器,但我没有找到。所以我想出了这个诀窍,它对我有效,希望它能帮助任何人Mysql';语句级';触发你可以用两个技巧来做,mysql,triggers,Mysql,Triggers,我搜索了很多次,想找到一些技巧或解决方法,在MySQL中创建一个类似Oracle的“语句级”触发器,但我没有找到。所以我想出了这个诀窍,它对我有效,希望它能帮助任何人 请参阅下面的答案。假设我们想要插入多行,并且我们想要一次性执行某些操作,但我们无法避免MySQL触发器中的“每行” `insert to table1 (sname,age) VALUES ('mariam',5),('jojo',3),('ahmed',29)` 首先创建一个包含两列(ID,statementid)的表sta
请参阅下面的答案。假设我们想要插入多行,并且我们想要一次性执行某些操作,但我们无法避免MySQL触发器中的“每行”
`insert to table1 (sname,age) VALUES ('mariam',5),('jojo',3),('ahmed',29)`
- 首先创建一个包含两列(
,ID
)的表statementid
)statementidstable
- 其次,您必须使用软件为您的声明准备一个uniqe ID
- 让我们说它是‘123456’
把你的陈述改为
完成后,从statementid表中删除statementid(用软件处理)将值('mariam',5123456),('jojo',3123456),('ahmed',29123456)插入表1(sname,年龄,唯一ID)
- 在这个技巧中,你必须像这样准备你的陈述
`insert to table1 (sname,age,rowid) VALUES ('mariam',5,1),('jojo',3,0),('dodo',3,0),('ahmed',29,-1)`
- 每个把戏都有它自己的好处。。。请注意,第一个技巧可以处理“插入语句”和“更新语句”
- 我仍在编写“删除语句”
`insert to table1 (sname,age,rowid) VALUES ('mariam',5,1),('jojo',3,0),('dodo',3,0),('ahmed',29,-1)`
CREATE TRIGGER
table1_after_insert
AFTER INSERT
ON
table1
FOR EACH ROW
BEGIN
IF rowid = 1 THEN
'''DO WHAT YOU WANT HERE after inserting first row only
ELSEIF rowid = -1
'''DO WHAT YOU WANT HERE after inserting last row only
ELSE
'''NOTHING WILL HAPPEN
END IF;
END;