首页 >数据库 >mysql教程 >如何根据唯一键插入或更新 MySQL 行?

如何根据唯一键插入或更新 MySQL 行?

Susan Sarandon
Susan Sarandon原创
2024-12-26 21:47:15271浏览

How to Insert or Update MySQL Rows Based on a Unique Key?

基于唯一键插入或更新 MySQL 行

考虑这样的场景:您打算将数据添加到表中,但面临着在更新现有行时插入新行的挑战基于特定列(日期数字)的唯一性。

要满足此要求,您可以首先尝试使用问题中举例说明的更新语句;但是,此方法仅限于修改现有行。对于表中不存在datenum值的场景,不会采取任何操作。

为了完成基于datenum唯一列的插入和更新,MySQL提供了INSERT ... ON DUPLICATE KEY UPDATE句法。此语法使您能够定义一个插入操作,如果遇到重复键,该操作会自动更新行。

这是使用 INSERT ... ON DUPLICATE KEY UPDATE 语法的 UPDATE 语句的改进版本:

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)

在此语句中,INSERT 子句中使用了唯一键列 datenum,而 Timestamp 的更新值在 ON 中指定DUPLICATE KEY UPDATE 子句。这确保了如果已经存在具有相同 datenum 的行,则 Timestamp 列将使用提供的值进行更新,而其他列保持不变。

通过采用此技术,您可以实现插入新行和更新基于唯一键列的 MySQL 表中的现有行。

以上是如何根据唯一键插入或更新 MySQL 行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn