mysql创建一个触发器
时间: 2023-06-11 11:06:14 浏览: 109
可以使用以下语法在 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` 表示对于每一行数据都会执行触发器中的代码。`BEGIN` 和 `END` 之间的代码是触发器执行的内容。
例如,以下是一个在 `orders` 表上创建的触发器,当插入一条新数据时,自动更新订单总价:
```
CREATE TRIGGER update_total_price
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE orders SET total_price = price * quantity WHERE id = NEW.id;
END;
```
在执行此触发器后,每当向 `orders` 表中插入一条新数据时,就会自动更新该订单的总价。
相关问题
MySQL创建一个触发器,这个触发器的作用是:当给表插入数据时,表自动记录插入时间
好的,下面是创建一个触发器实现自动记录插入时间的MySQL语句:
```sql
CREATE TRIGGER insert_time_trigger
BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
SET NEW.insert_time = NOW();
END;
```
请将上述代码中的`your_table`替换为你要创建触发器的表名,`insert_time`替换为你要记录插入时间的字段名。这个触发器会在每次插入操作执行前自动将当前时间赋值给指定的字段。
MySQL创建一个触发器,这个触发器的作用是:当删除表中的数据时,表自动记录删除时间
好的,下面是创建一个触发器实现自动记录删除时间的MySQL语句:
```sql
CREATE TRIGGER delete_time_trigger
BEFORE DELETE ON your_table
FOR EACH ROW
BEGIN
SET NEW.delete_time = NOW();
END;
```
请将上述代码中的`your_table`替换为你要创建触发器的表名,`delete_time`替换为你要记录删除时间的字段名。这个触发器会在每次删除操作执行前自动将当前时间赋值给指定的字段。
阅读全文