UPDATE AggregatedData SET datenum="734152.979166667",
Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";

如果datenum存在,它可以工作,但是如果datenum不存在,我想将此数据作为新行插入。

更新

datenum是唯一的,但这不是主键

最佳答案

Jai是正确的,您应该使用INSERT ... ON DUPLICATE KEY UPDATE

请注意,由于它是唯一键,因此不需要在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)

09-15 22:11