📅  最后修改于: 2023-12-03 15:37:24.727000             🧑  作者: Mango
在 MySQL 中插入数据时,可能会遇到重复的唯一密钥,此时可以选择更新已有的数据。本文将介绍如何在 MySQL 中使用INSERT INTO ... ON DUPLICATE KEY UPDATE
语句来插入数据并更新重复的唯一密钥。
INSERT INTO table_name (column1, column2, ..., column_n)
VALUES (value1, value2, ..., value_n)
ON DUPLICATE KEY UPDATE
column1 = value1,
column2 = value2,
...,
column_n = value_n;
其中,INSERT INTO
语句用于插入数据,table_name
为表名,column1
~column_n
为列名,value1
~value_n
为对应的值。
当插入的数据遇到重复的唯一密钥时,将执行ON DUPLICATE KEY UPDATE
语句。该语句用于更新已有数据的列值,column1
~column_n
为需要更新的列名,value1
~value_n
为对应的值。
假设有一个表users
,其中有一个唯一密钥为username
,现在要插入一条新数据:
INSERT INTO users (username, age)
VALUES ('johndoe', 25)
ON DUPLICATE KEY UPDATE
age = 26;
如果表中不存在username
为johndoe
的数据,则该语句将插入一条新数据,age
列值为25
。如果表中已存在username
为johndoe
的数据,则该语句将更新已有数据的age
列值为26
。
ON DUPLICATE KEY UPDATE
语句。ON DUPLICATE KEY UPDATE
语句可以更新多个列的值。INSERT INTO
语句和ON DUPLICATE KEY UPDATE
语句中列名和值的数量必须匹配。