我是靠谱客的博主 会撒娇雪糕,这篇文章主要介绍mysql触发器设置时间,MYSQL触发器使用case语句设置日期时间值,现在分享给大家,希望可以做个参考。

I'm using mysqlimport to do mass table inserts (replacing duplicates primary keys). Several tables have date time columns with records containing values '0000-00-00'. What I would like is a trigger which detects these '0000-00-00' values and replaces with '1950-01-01', otherwise keep the datetime value in the record (i.e. when it's not '0000-00-00').

I have tried the following:

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

Thank you.

EDIT

Update attempt:

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;

Still getting an error in the SET portion.

EDIT 2

WORKING:

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 ;

解决方案

Use IF THEN :

IF (NEW.date_col = '0000-00-00') THEN

SET NEW.date_col='1950-01-01';

END IF;

最后

以上就是会撒娇雪糕最近收集整理的关于mysql触发器设置时间,MYSQL触发器使用case语句设置日期时间值的全部内容,更多相关mysql触发器设置时间内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(228)

评论列表共有 0 条评论

立即
投稿
返回
顶部