我有一个SQL表。例如名为“Fruits”列:标识、名称、颜色、购买日期时间当我尝试编辑(手动或使用脚本)水果的颜色时,日期将更改为当前日期时间。我如何更新脚本并保持日期时间不变?
cURRENT SQL= UPDATE `Fruits` SET `Color`='Red' WHERE `Name`='Apple'
我猜有触发器参与,我使用MariaDB。我猜一个简单的解决方案,比如先读取购买日期时间的当前结果,进行更新,最后再次覆盖购买日期时间的前一个值:)
flvlnr441#
除非您定义了触发器,否则您的列很可能被定义为TIMESTAMP而不是DATETIME。默认情况下,MariaDB会自动为第一个时间戳列分配以下值:
TIMESTAMP
DATETIME
如果要禁用UPDATE命令的第一个时间戳列的更改,请使用DEFAULT VALUE定义TIMESTAMP,例如
CREATE TABLE mytable (a INT NOT NULL, b TIMESTAMP DEFAULT NOW());
1条答案
按热度按时间flvlnr441#
除非您定义了触发器,否则您的列很可能被定义为
TIMESTAMP
而不是DATETIME
。默认情况下,MariaDB会自动为第一个时间戳列分配以下值:
如果要禁用UPDATE命令的第一个时间戳列的更改,请使用DEFAULT VALUE定义TIMESTAMP,例如