尝试进行更新,插入触发器,根据DateOfBirth的计算设置Age列的值。但我似乎错过了一些东西
create trigger calcAge before insert on BoardMember
for each row
begin
set NEW.Age = YEAR(CURRDATE()) - YEAR(BoardMember.DateOfBirth)
end;
答案 0 :(得分:0)
您试图在插入前的数据行中从出生日期开始自动计算年龄。所以你的代码应该是:
delimiter //
create trigger calcAge before insert on BoardMember
for each row
begin
set NEW.Age = YEAR(CURRDATE()) - YEAR(IFNULL(NEW.DateOfBirth,CURRDATE()));
end//
delimiter ;
如果出生日期为空,我使用IFNULL
来获取当前日期。
注意 BoardMember.DateOfBirth
如何替换为NEW.DateOfBirth
您在此处犯了错误。 新 用于引用要插入表格的数据行。
有关详细信息,请参阅Create Trigger in MySQL