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

mysql触发器怎么设置

  创建触发器的语法如下:

  CREATE TRIGGER trigger_name

  {BEFORE|AFTER} {INSERT|UPDATE|DELETE}

  ON table_name

  FOR EACH ROW

  BEGIN

  -- 触发器操作

  END;

  其中,`BEFORE`和`AFTER`关键字表示在触发事件之前或之后执行操作。`INSERT`、`UPDATE`和`DELETE`关键字表示在何种事件下触发操作。`table_name`是指要监视的表名,`FOR EACH ROW`表示对每一行数据都执行操作。

  下面以一个简单的实例来介绍如何创建触发器。

  假设有一个名为`users`的表,包含以下字段:

  id INT AUTO_INCREMENT PRIMARY KEY,

  name VARCHAR(50) NOT NULL,

  email VARCHAR(50) NOT NULL,

  created_at DATETIME DEFAULT CURRENT_TIMESTAMP

  现在我们要为该表创建一个触发器,在每次插入一行数据时,自动为`created_at`字段设置当前时间戳。

  CREATE TRIGGER insert_timestamp

  BEFORE INSERT

  ON users

  FOR EACH ROW

  BEGIN

  SET NEW.created_at = CURRENT_TIMESTAMP;

  END;

  这个触发器会在每次插入新行之前被触发,然后将`created_at`字段的值设置为当前时间戳。触发器中的`NEW`关键字表示正在插入的新行。

  类似地,我们可以创建一个在每次更新数据时自动更新`updated_at`字段的触发器。

  CREATE TRIGGER update_timestamp

  BEFORE UPDATE

  ON users

  FOR EACH ROW

  BEGIN

  SET NEW.updated_at = CURRENT_TIMESTAMP;

  END;

  这个触发器会在每次更新数据之前被触发,将`updated_at`字段的值设置为当前时间戳。

  如果需要删除某个触发器,可以使用以下语句:

  DROP TRIGGER trigger_name;




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