我是靠谱客的博主 会撒娇雪糕,最近开发中收集的这篇文章主要介绍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触发器设置时间,MYSQL触发器使用case语句设置日期时间值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部