MySQL插入更新以设置更改时间

时间:2018-07-11 22:01:18

标签: mysql

在MySQL的INSERT UPDATE中,更改更改时间无效。

代码:

INSERT INTO g_ladenpreis 
(ordernumber,changetime,bruttoladenpreis,bruttouvp) 
VALUES (71057375,'2018-07-11 23:55:21',19,39.95) 
ON DUPLICATE KEY UPDATE 
bruttoladenpreis = IF(19 != bruttoladenpreis, 19, bruttoladenpreis), 
bruttouvp = IF(19 != bruttoladenpreis, 39.95, bruttouvp), 
changetime = IF(19 != bruttoladenpreis, '2018-07-11 23:55:21', changetime);

更改两个价格是可行的,但更改时间保持不变。

你有个主意吗?

1 个答案:

答案 0 :(得分:2)

您需要最后将作业分配到bruttoladenpreis。否则,后面的IF()表达式将使用更新后的值。因此,如果在运行查询时不是19,它将首先将其更改为19,然后接下来的IF()测试将失败,并且它们的值将保持不变。

INSERT INTO g_ladenpreis 
(ordernumber,changetime,bruttoladenpreis,bruttouvp) 
VALUES (71057375,'2018-07-11 23:55:21',19,39.95) 
ON DUPLICATE KEY UPDATE 
bruttouvp = IF(19 != bruttoladenpreis, 39.95, bruttouvp), 
changetime = IF(19 != bruttoladenpreis, '2018-07-11 23:55:21', changetime),
bruttoladenpreis = IF(19 != bruttoladenpreis, 19, bruttoladenpreis)

DEMO