使用存储过程将自动日期字段添加到 MYSQL 数据库
Posted
技术标签:
【中文标题】使用存储过程将自动日期字段添加到 MYSQL 数据库【英文标题】:Adding an automatic date field to MYSQL database using stored procedure 【发布时间】:2019-09-03 05:49:10 【问题描述】:我有一个名为 entry 的表。
表格有 2 列称为 id & name
。
当用户填写姓名时,提交姓名保存在条目表中。
现在我也想保存日期。但是这个日期需要自动填入数据库。即填写名称时,我选择的国家/地区的当前时区应自动保存在表格中。
我已经在 table 中创建了日期列。现在我该怎么做?是否有任何存储过程可以帮助解决这个问题?
我无法在我的 php 文件中编写任何查询。它应该在 mysql 端完成。
请帮忙
【问题讨论】:
您可以使用默认约束来填充日期。请查看:***.com/questions/2095289/… 【参考方案1】:您也可以使用trigger
。使用after insert
,这样每当您添加记录时,它都会自动更新日期。
我不是普通的mysql
用户,所以语法可能不同,但你会明白的。请找到链接以获取更多信息。 TRIGGER.
CREATE TRIGGER inserttable
AFTER INSERT
ON table1
FOR EACH ROW
NEW.DATECOL = (SELECT CURDATE());
END
如果存在任何语法问题,请随时编辑此代码。
【讨论】:
【参考方案2】:一般来说,创建日期/时间可以通过使用默认值的表定义来处理:
create table t (
. . . ,
created_at timestamp default current_timestamp
);
这比为此目的定义触发器要简单得多。
请注意,这会存储日期和时间值。我不认为 MySQL 让你只存储时间。但是因为您提到了时区,所以这可能是您真正想要的。
【讨论】:
但该表之前已经创建,并且 table 中有一些条目。对于上一个条目,日期将像 00.00.000 这样。所以请检查。我只需要存储 date ,即使时间为零以上是关于使用存储过程将自动日期字段添加到 MYSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
MySQL时间字段TIMESTAMPDATETIME(自动更新毫秒存储)