gpt4 book ai didi

mysql - 在插入时插入当前日期

转载 作者:行者123 更新时间:2023-11-29 01:20:13 28 4
gpt4 key购买 nike

我有一个具有以下结构的表:

+----+-------------+----------------+------------+------------+
| id | some column | another column | inserted | edited |
+----+-------------+----------------+------------+------------+
| 1 | ... | ... | 2014-08-15 | 2016-03-04 |
| 2 | ... | ... | 2015-09-16 | 2016-10-07 |
| 3 | ... | ... | 2016-10-17 | 2016-11-16 |
+----+-------------+----------------+------------+------------+

插入新条目时,应将当前日期添加到 inserted 列中。它永远不应该被改变。
编辑条目时,应将当前日期添加到 edited 列中,并应在每次编辑此条目时更新。

我的方法是在这两种情况下定义数据类型 date 并将标准值更改为 CURDATE()。但相反,它只是将 CURDATE() 作为字符串插入。

更新这是一个示例查询:

CREATE TABLE `test`.`testtab` 
(
`id` INT NOT NULL auto_increment,
`some column` VARCHAR(100) NULL,
`another column` VARCHAR(100) NULL,
`inserted` VARCHAR(100) NULL DEFAULT 'CURDATE()',
`edited` VARCHAR(100) NULL DEFAULT 'CURDATE()',
PRIMARY KEY (`id`)
)
engine = innodb;

不过,我不确定数据类型。

最佳答案

根据您的需要,这将适合您:

CREATE TABLE `test`.`testtab` 
(
`id` INT NOT NULL auto_increment,
`some column` VARCHAR(100) NULL,
`another column` VARCHAR(100) NULL,
`inserted` DATETIME DEFAULT CURRENT_TIMESTAMP,
`edited` DATETIME ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
engine = innodb;

然后在处理时只提取日期部分:

DATE_FORMAT(datetime, '%Y-%m-%d')

您可以使用触发器作为变通方法,将日期时间字段设置为 NOW() 用于新插入:

CREATE TRIGGER `triggername` BEFORE INSERT ON  `tablename` 
FOR EACH ROW
SET NEW.datetimefield = NOW()

它也应该适用于更新

关于mysql - 在插入时插入当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40656499/

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