mysql的触发器怎么创建
时间: 2023-06-25 22:05:28 浏览: 53
MySQL中的触发器可以在特定的事件发生时自动执行一些操作。
以下是创建触发器的基本语法:
```sql
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
trigger_body
```
其中:
- `trigger_name`:触发器的名称。
- `BEFORE` 或 `AFTER`:触发器执行的时间。
- `INSERT`、`UPDATE` 或 `DELETE`:触发器执行的事件。
- `table_name`:要触发的表名。
- `FOR EACH ROW`:触发器的执行次数。`FOR EACH ROW` 表示每次插入、更新或删除操作都会触发该触发器。
- `trigger_body`:触发器执行的操作,可以是 SQL 语句或一个存储过程。
例如,下面的语句创建一个在 `employees` 表上的 `BEFORE INSERT` 触发器:
```sql
CREATE TRIGGER new_employee
BEFORE INSERT
ON employees
FOR EACH ROW
BEGIN
SET NEW.hire_date = NOW();
END;
```
这个触发器会在每次向 `employees` 表插入一条新记录之前自动设置 `hire_date` 字段为当前时间。
相关问题
mysql触发器创建表
以下是创建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`表示触发器的触发事件,`FOR EACH ROW`表示触发器的作用范围为每一行数据。
例如,创建一个在`orders`表中插入数据时触发的触发器,该触发器会将插入的数据的`order_date`字段设置为当前时间:
```mysql
CREATE TRIGGER set_order_date
BEFORE INSERT
ON orders FOR EACH ROW
BEGIN
SET NEW.order_date = NOW();
END;
```
MySQL触发器的创建
MySQL触发器是在指定的事件发生时(如INSERT、UPDATE、DELETE操作),自动执行的一段代码。可以在数据库中创建触发器。创建触发器的语法如下:
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行的代码
END;
其中,trigger_name为触发器名称,INSERT/UPDATE/DELETE为触发事件,table_name为关联的表名,BEFORE/AFTER为触发时机。触发器中的代码可以包括任何MySQL支持的语句,如SELECT、UPDATE、INSERT等。触发器的作用可以是在特定的操作发生时,执行一些额外的业务操作,例如记录日志、更新关联表等。