例如,如果用户将“2017-03-13 12:16:18.0”插入时间戳列中, 如果是在同一天,即 2017 年 3 月 13 日(在本例中),则不应允许同一用户在此列中输入其他值。或者最终,每次用户尝试在同一天两次插入时间戳日期时,使用之前插入的值 ('2017-03-13 12:16:18.0') 更新时间戳列。我希望我已经足够明确了。
下面是我提出的一个不起作用的查询,但它显示了我希望查询最终执行的操作。感谢您的帮助和反馈。
INSERT INTO hr.entry(id,entry_time)
VALUES (45,
CASE WHEN '13-03-2017'= CAST(SYSDATE() AS date) THEN
(UPDATE hr.entry
SET entry_time =
(SELECT entry_time
FROM hr.entry
WHERE id=45
AND CAST(entry_time AS date)= CAST(SYSDATE() AS date) )
ELSE
SYSDATE());
最佳答案
您可以向表中添加DATE
列,并向该列添加唯一索引。然后,当您将时间戳插入时间戳列时,您还可以将该时间戳中的日期插入到 DATE
列中。尝试插入其日期部分已存在于该表中的时间戳将导致 MySQL 抛出错误。
关于MYSQL 查询不允许时间戳列具有同一日期的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763194/