ON DUPLICATE KEY UPDATE 的详细用法 完整代码
时间: 2024-11-16 11:13:25 浏览: 30
mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析
5星 · 资源好评率100%
`ON DUPLICATE KEY UPDATE`是在插入数据时,如果遇到主键或唯一索引重复的情况,提供的一种自动更新已有记录的方式。它通常配合`UNIQUE`约束一起使用。以下是一个完整的`INSERT INTO`语句示例,使用`ON DUPLICATE KEY UPDATE`更新指定字段:
```sql
INSERT INTO your_table (column1, column2, column3)
VALUES ('value1', 'value2', 'value3')
ON DUPLICATE KEY UPDATE
column1 = VALUES(column1), -- 只更新column1的值
column2 = 'new_value_for_column2'; -- 更新column2为新的值
```
在这个例子中,如果你试图插入一条已经存在并且`column1`和`column2`组合下唯一的记录,那么`column1`将被设置为新插入的`value1`,而`column2`会被更新为`'new_value_for_column2'`。
如果你的表只有一个名为`charid`的唯一索引,且你想以此为基础做类似的操作,代码会像下面这样:
```sql
INSERT INTO your_table (charid, other_data_column)
VALUES ('your_unique_charid', 'data_value')
ON DUPLICATE KEY UPDATE
other_data_column = 'new_data_value';
```
这将更新`other_data_column`而不影响`charid`,因为`charid`是唯一标识符。
阅读全文