use*_*192 5 mysql sql triggers sql-update sql-insert
我有两张桌子。第一个是我的人员表,它具有ID,名称,creation_date作为值,我有一个old_person表(id,名称,modified_date),我想在其实际更改之前填充人员的值。我将如何处理?我尝试过触发器,但失败了。
我尝试如下
create trigger Person_Trigger Update on person
before update
as
insert into old_person(id, name, modified)
select id, new.name, getdate()
from person
Run Code Online (Sandbox Code Playgroud)
这给了我语法错误...那里也没有太多的触发器引用,一点点推动将不胜感激!
尝试这个:
DELIMITER \\
CREATE TRIGGER `Person_Trigger`
BEFORE UPDATE ON `Person`
FOR EACH ROW
BEGIN
DECLARE date_modified datetime;
SET date_modified = NOW();
INSERT INTO old_person(id, name, modified)
VALUES (OLD.id, OLD.name, date_modified);
END\\
Run Code Online (Sandbox Code Playgroud)
这种语法适用于我自己的项目。您可能还需要在开始触发器之前声明分隔符。另外,如果您想使用NEW关键字,则应该AFTER更新它。OLD如果您打算继续BEFORE在触发器上使用 update,请切换到关键字。
| 归档时间: |
|
| 查看次数: |
11328 次 |
| 最近记录: |