| 虚拟主机域名注册-常见问题 → 数据库问题 → 数据库问题 | ||||
| 创建触发器的语法如下: 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;
|
||||
| >> 相关文章 | ||||
| 没有相关文章。 | ||||






