mysql中的trigger

 2023-09-10 阅读 27 评论 0

摘要:mysql中trigger的语法跟procedure和function类似。 1 创建 CREATE[DEFINER = { user | CURRENT_USER }]TRIGGER trigger_nametrigger_time trigger_eventON tbl_name FOR EACH ROWtrigger_bodytrigger_time: { BEFORE | AFTER }trigger_event: { INSERT | UPDATE | DELET

mysql中trigger的语法跟procedure和function类似。
1 创建

    CREATE[DEFINER = { user | CURRENT_USER }]TRIGGER trigger_nametrigger_time trigger_eventON tbl_name FOR EACH ROWtrigger_bodytrigger_time: { BEFORE | AFTER }trigger_event: { INSERT | UPDATE | DELETE }

具体操作中也和function类似,例如:

    mysql> delimiter //mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account-> FOR EACH ROW-> BEGIN->     IF NEW.amount < 0 THEN->         SET NEW.amount = 0;->     ELSEIF NEW.amount > 100 THEN->         SET NEW.amount = 100;->     END IF;-> END;//mysql> delimiter ;

MySQL alter,若只有一句trigger语句,则begin...end复合句式可以不用,如:

    mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account-> FOR EACH ROW SET @sum = @sum + NEW.amount;

不同的地方是:
a trigger不能用call来调用
b trigger的语句中不能有事务的开启和结束,如 START TRANSACTION, COMMIT, or ROLLBACK等等。
2 查看trigger

    SHOW TRIGGERS [{FROM | IN} db_name][LIKE 'pattern' | WHERE expr]或者从information_schema.TRIGGERS中查看SELECT * FROM INFORMATION_SCHEMA.TRIGGERSWHERE condition;

3 删除

    DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

mysql中if。转载于:https://www.cnblogs.com/noway-neway/p/5218763.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/37879.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息