虚拟主机域名注册-常见问题数据库问题 → 数据库问题

mysql触发器的写法与作用

  1. 触发器的语法

  创建MySQL触发器的语法如下:

  CREATE TRIGGER trigger_name

  trigger_time trigger_event

  ON table_name FOR EACH ROW

  BEGIN

  -- 触发器代码

  END;

  其中,`trigger_name`是触发器的名称,`trigger_time`指定触发器的执行时间,可以是BEFORE或AFTER,`trigger_event`指定触发事件,可以是INSERT、UPDATE或DELETE。

  `table_name`是触发器要绑定到的表名,`FOR EACH ROW`表示这是一个行级别上的触发器,触发器中的代码将在每一行被修改时都会执行。

  在`BEGIN`和`END`之间是触发器执行的SQL语句,可以包括INSERT、UPDATE、DELETE、SELECT等语句。

  2. 触发器的类型

  MySQL触发器有两种类型:行级别和语句级别。

  行级别触发器会在每一行数据***入、更新、删除时触发,它们可以读取和修改正在修改的行的值。而语句级别触发器则会在SQL语句执行完成后触发,它们仅能访问和修改表的数据,而不是正在被修改的行。

  3. 创建一个触发器示例

  下面是一个在表student上创建的一个行级别的触发器,用于在插入或更新数据时将年龄字段的值限制在18到25岁之间:

  CREATE TRIGGER check_age

  BEFORE INSERT OR UPDATE ON student

  FOR EACH ROW

  BEGIN

  IF NEW.age < 18 THEN

  SET NEW.age = 18;

  ELSEIF NEW.age > 25 THEN

  SET NEW.age = 25;

  END IF;

  END;

  这个触发器名为`check_age`,在每一次插入或更新student表中的数据时都会被触发。它会检查新行中的age字段的值是否小于18或大于25,如果是,就会将其修正为18或25。

  4. 删除触发器

  可以通过如下命令来删除MySQL触发器:

  DROP TRIGGER trigger_name;

  其中,`trigger_name`是要删除的触发器的名称。

  5. 总结

  本文介绍了MySQL触发器的语法、类型以及一个实例,希望能够帮助大家更好的理解和应用MySQL触发器。呈上完整代码,以供参考:

  CREATE TRIGGER check_age

  BEFORE INSERT OR UPDATE ON student

  FOR EACH ROW

  BEGIN

  IF NEW.age < 18 THEN

  SET NEW.age = 18;

  ELSEIF NEW.age > 25 THEN

  SET NEW.age = 25;

  END IF;

  END;

  DROP TRIGGER check_age;




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:mysql桌面版的查询方法
下一篇:mysql原文件打开有哪些方法
  >> 相关文章