UPDATE AggregatedData SET datenum="734152.979166667",
Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";
如果datenum
存在,它就可以工作,但如果datenum
不存在,我想将此数据作为新行插入。
更新
日期数字是唯一的,但这不是主键
最佳答案
Jai 是正确的,您应该使用 INSERT ... ON DUPLICATE KEY UPDATE
。
请注意,您不需要在更新子句中包含 datenum,因为它是唯一键,因此不应更改。您确实需要包含表中的所有其他列。您可以使用 VALUES()
函数以确保更新其他列时使用正确的值。
这是使用正确的 MySQL INSERT ... ON DUPLICATE KEY UPDATE
语法重写的更新:
INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE
Timestamp=VALUES(Timestamp)
关于MySql 表如果不存在则插入,否则更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959749/