我的 MYSQL 表中有一个 TIMESTAMP myDate
字段。
有没有一种方法可以为 myDate
中的每一 day 定义一个唯一的字符串 stringForTheDay
?
类似于:
UNIQUE(stringForTheDay, day_in_mydate)
简而言之,不能允许这两行:
2012-11-29 13:35:53 samestring
2012-11-29 20:39:09 samestring
最佳答案
我认为最好的办法是将日期部分复制到单独的列中,并在其上添加唯一约束。您可以使用触发器使日期部分保持最新:
CREATE TRIGGER ins_tablename BEFORE INSERT ON tablename
FOR EACH ROW SET NEW.dateColumn = CAST(NEW.timestampColumn AS DATE);
CREATE TRIGGER upd_tablename BEFORE UPDATE ON tablename
FOR EACH ROW SET NEW.dateColumn = CAST(NEW.timestampColumn AS DATE);
(参见 §18.3 "Using Triggers" in the MySQL 5.6 Reference Manual 。)
关于Mysql - CAST 的唯一约束(TIMESTAMP as DATE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027783/