ZBLOG

mysql 自动创建触发器的语句

在 MySQL 中,创建触发器的语句如下:

CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN – 触发器操作语句 END;

其中,”trigger_name”是要创建的触发器名称;”table_name”是要应用触发器的表名;”BEFORE/AFTER”关键字指定触发时机为插入/更新/删除之前或之后;”INSERT/UPDATE/DELETE”关键字指定触发类型为插入、更新或删除;最后,在BEGIN和END之间编写具体的触发操作语句。

如果需要自动创建多个相同结构的触发器,可以使用循环和字符串拼接来实现。例如,以下示例代码会自动创建名为trig1到trig5共5个触发器:

DELIMITER $\( DROP PROCEDURE IF EXISTS create_triggers\)$ CREATE PROCEDURE create_triggers() BEGIN DECLARE i INT DEFAULT 1; DECLARE trig_name VARCHAR(50); WHILE i <= 5 DO

SET trig_name = CONCAT('trig', i);
SET @sql = CONCAT(
  'CREATE TRIGGER ', trig_name, '
  BEFORE INSERT ON mytable
  FOR EACH ROW
  BEGIN
    -- 触发器操作语句
  END;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i = i + 1;

END WHILE; END$$

调用该存储过程即可自动生成5个名为trig1到trig5的触发器。注意,以上示例代码中使用了MySQL内置函数CONCAT和PREPARE/EXECUTE语句来动态生成SQL语句。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4887

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?