我正在使用mysqlimport进行批量表插入(替换重复的主键).几个表具有日期时间列,记录中包含值“ 0000-00-00”.我想要的是一个触发器,该触发器检测这些“ 0000-00-00”值并替换为“ 1950-01-01”,否则将datetime值保留在记录中(即,当它不是“ 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 ;
解决方法:
使用IF THEN:
IF (NEW.date_col = '0000-00-00') THEN
SET NEW.date_col='1950-01-01';
END IF;