为了账号安全,请及时绑定邮箱和手机立即绑定

MySql表插入,如果不存在,否则更新

MySql表插入,如果不存在,否则更新

汪汪一只猫 2019-10-28 10:50:52
UPDATE AggregatedData SET datenum="734152.979166667", Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";如果datenum存在,它就可以工作,但是如果不存在,我想将此数据作为新行插入datenum。更新datenum是唯一的,但这不是主键
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

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


请注意,由于它是唯一键,因此不需要在update子句中包含datenum,因此它不应更改。您确实需要包括表中的所有其他列。您可以使用该VALUES()函数来确保在更新其他列时使用正确的值。


这是使用适用INSERT ... ON DUPLICATE KEY UPDATE于MySQL 的正确语法重写的更新:


INSERT INTO AggregatedData (datenum,Timestamp)

VALUES ("734152.979166667","2010-01-14 23:30:00.000")

ON DUPLICATE KEY UPDATE 

  Timestamp=VALUES(Timestamp)


查看完整回答
反对 回复 2019-10-28
  • 3 回答
  • 0 关注
  • 752 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信