我有一个MySQL 5.1服务器社区版数据库。在表格中,我有一个名为TransactionDate为 DateTime DataType的列。每次完成新插入时,都会使用当前日期和时间值更新此列值。
当我创建这个表时,我期望每个插入一个唯一的秒值。在一些奇怪的场景中,MySQL存储相同的日期/时间值。这使得很少有报告崩溃。这很奇怪,因为用户必须填写表格,这需要几分钟。当用户保存新记录时,当前日期/时间值存储在TransactionDate列中。没有重复值的问题,因为至少会有几秒钟的变化。
请建议任何更好的方法来解决这个问题。
答案 0 :(得分:2)
如果您需要唯一的日期/时间,请在创建行时使用触发器自动填充now()
。
奖金......这是一个有效的触发器定义:
DELIMITER $$
CREATE TRIGGER MYTABLE_INSERT_TRIGGER
BEFORE INSERT ON MYTABLE
FOR EACH ROW
BEGIN
SET NEW.TransactionDate = now();
END;$$
DELIMITER ;