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

标签 mysql insert

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/

相关文章:

mysql - 如何启用 MYSQL 用户访问除一个数据库之外的所有数据库

Php - 尝试将 URL 插入 MySQL 表

r - 如何在列表中间插入元素?

c++ - 递归插入二叉树(geeksforgeeks)

c - 插入单链表 C

php - 将特定值插入数据库,并在表上显示?

mysql - 如何在sql where子句中实现 'if not-then'之类的东西

使用 IN() 子句的 PHP/MYSQL 更新

php - 奇怪的日期时间错误?

php - 如果查询未返回任何内容,则显示消息