如果没有在insert语句中设置日期,我有一个触发器设置日期:
CREATE TRIGGER checkData
BEFORE INSERT ON students
FOR EACH ROW
BEGIN
IF NEW.schoolDate is null THEN
SET NEW.schooldate=date(now());
END IF;
END;
效果很好。但是现在我想在这样的程序中包含它:
create procedure checkdate(setDate date)
begin
if setDate is null then
set setDate = date(now());
end if;
END;
我将触发器更改为:
CREATE TRIGGER checkData
BEFORE INSERT ON students
FOR EACH ROW
BEGIN
call checkdate(NEW.schoolDate);
END;
但是这不再有用了吗?
答案 0 :(得分:0)
使用默认值而不是触发器。将表结构更改为
create table students
(
...
schoolDate datetime not null default current_timestamp,
...
)
然后您可以插入带有日期设置的数据,如果您没有提供日期,则会使用默认值。