触发器中的old和new mysql
时间: 2023-04-29 17:02:33 浏览: 909
触发器中的old和new是MySQL中的两个特殊变量,用于在触发器中引用被修改的行的旧值和新值。
old表示被修改的行的旧值,new表示被修改的行的新值。在触发器中,可以使用这两个变量来进行条件判断和数据操作,以实现对数据库的自动化管理和控制。
例如,在一个触发器中,可以使用old和new来判断某个字段是否被修改,如果被修改,则进行相应的操作,如记录日志、发送邮件等。同时,也可以使用这两个变量来进行数据的更新、插入或删除等操作,以实现对数据库的自动化维护和管理。
相关问题
MySQL中new和old含义
在MySQL中,new和old是用于触发器(trigger)中的关键字。
当触发器中的INSERT或UPDATE语句执行时,new表示将要插入或更新的新数据行,old表示将要被更新或删除的旧行数据。
例如,在一个触发器中,如果我们需要在插入一条新数据时设置一个默认值,我们可以使用new来实现:
```
CREATE TRIGGER set_default_value
BEFORE INSERT ON my_table
FOR EACH ROW
SET NEW.column_name = 'default_value';
```
这里的NEW.column_name表示将要插入的新数据行中的某个列,我们将它设置为'default_value'。
类似地,old可以用于在更新或删除旧行数据时进行操作。
mysql触发器中引用变量
在 MySQL 触发器中引用变量可以使用 `NEW` 和 `OLD` 关键字来访问触发器所关联的表的行数据。其中,`NEW` 表示触发器所关联的表在触发器执行之前的数据,`OLD` 表示触发器所关联的表在触发器执行之后的数据。
例如,在一个 `BEFORE INSERT` 触发器中,可以使用 `NEW.column_name` 来访问要插入的行的数据,其中 `column_name` 是表中的列名。类似地,在一个 `AFTER UPDATE` 触发器中,可以使用 `OLD.column_name` 和 `NEW.column_name` 来访问被更新的行的旧值和新值。