【发布时间】:2011-12-07 17:43:25
【问题描述】:
我正在使用 mysqlimport 进行批量表插入(替换重复的主键)。几个表的日期时间列的记录包含值“0000-00-00”。我想要的是一个检测这些'0000-00-00'值并替换为'1950-01-01'的触发器,否则将日期时间值保留在记录中(即当它不是'0000-00-00'时) .
我尝试了以下方法:
CREATE TRIGGER set_datetime BEFORE INSERT ON tbl
FOR EACH ROW
CASE
WHEN date_col='0000-00-00' THEN SET date_col='1950-01-01';
END CASE
谢谢。
编辑
更新尝试:
CREATE TRIGGER set_datetime BEFORE INSERT ON tbl
FOR EACH ROW
IF (NEW.date_col='0000-00-00') THEN
SET NEW.date_col='1950-01-01';
END IF;
SET 部分仍然出错。
编辑 2
工作:
DELIMITER $$
CREATE TRIGGER insert_check BEFORE INSERT ON ar
FOR EACH ROW
BEGIN
IF NEW.delivery_date='0000-00-00' THEN
SET NEW.delivery_date='1950-01-01';
END IF;
END; $$
DELIMITER ;
【问题讨论】: