【发布时间】:2017-04-01 02:09:13
【问题描述】:
我有一个结构如下的表:
+----+-------------+----------------+------------+------------+
| 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;
不过,我不确定数据类型。
【问题讨论】:
-
您的查询是什么?
-
inserted的类型是什么? -
喂?!?允许将文本/字符串“CURDATE()”插入到日期数据类型列中吗?这似乎不太可能,除非你的数据库真的很紧张。我能想到的就是从您的声明中删除 curdate() 周围的抽动。并验证插入和编辑都是“日期”数据类型。
-
添加表的
create查询。 -
@MuhammadMuazzam:请看我的更新。