UPDATE AggregatedData SET datenum="734152.979166667", Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";如果datenum存在,它就可以工作,但是如果不存在,我想將此數(shù)據(jù)作為新行插入datenum。更新datenum是唯一的,但這不是主鍵
3 回答

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
Jai是正確的,您應(yīng)該使用INSERT ... ON DUPLICATE KEY UPDATE。
請(qǐng)注意,由于它是唯一鍵,因此不需要在update子句中包含datenum,因此它不應(yīng)更改。您確實(shí)需要包括表中的所有其他列。您可以使用該VALUES()函數(shù)來(lái)確保在更新其他列時(shí)使用正確的值。
這是使用適用INSERT ... ON DUPLICATE KEY UPDATE于MySQL 的正確語(yǔ)法重寫的更新:
INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE
Timestamp=VALUES(Timestamp)
添加回答
舉報(bào)
0/150
提交
取消