gpt4 book ai didi

mysql - 如何使用触发器在 MySQL 中的空列中插入当前日期?

转载 作者:行者123 更新时间:2023-11-30 22:07:47 24 4
gpt4 key购买 nike

我的表(Report_table)有以下列:ID、标题、文本、日期。

通过我的应用程序,我输入了标题和文本。数据库会在插入时自动设置 ID,但我还想使用触发器自动插入每个报告的日期。

我有点困惑。这是我的建议,但这行不通:

DELIMITER //
CREATE TRIGGER trRDate
BEFORE INSERT ON Report_table
FOR EACH ROW

BEGIN

IF (Date IS NULL or Date = '') THEN
SET NEW.Date = CURDATE();
END IF;

END; //
DELIMITER ;

所以基本上,如果日期列为空(确实如此),那么触发器应该插入一个日期。

最佳答案

在 MySQL 中,触发器无法修改调用它的表,因此您当前的方法行不通。但是从 MySQL 5.6.5 开始,您可以为 datetime 列指定动态默认值。

您可以按如下方式更改 Report_table 表中的 Date 列:

ALTER TABLE Report_table CHANGE `Date` `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

这意味着如果您在插入 Report_table 期间未指定日期,则当前时间戳将用作默认时间。

另一个同样有用的选项是从您的申请中分配默认日期。

关于mysql - 如何使用触发器在 MySQL 中的空列中插入当前日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41077472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com