给我一个INSERT INTO ... ON DUPLICATE KEY UPDATE的示例
时间: 2023-10-11 10:17:56 浏览: 164
假设我们有一个名为 "users" 的表,包含以下列:
- id(主键)
- name
- email
如果我们想要向表中插入一行数据,如果该行数据已经存在,则更新该行数据,可以使用以下语句:
```
INSERT INTO users (id, name, email) VALUES (1, 'Tom', 'tom@example.com')
ON DUPLICATE KEY UPDATE name = 'Tom', email = 'tom@example.com';
```
如果在表中已经存在具有 id=1 的行,则该行的 name 和 email 将被更新为 'Tom' 和 'tom@example.com'。如果不存在,则将插入新行。请注意,这里的 ON DUPLICATE KEY UPDATE 子句是必需的,否则将只执行插入操作而不进行更新。
相关问题
INSERT INTO......ON DUPLICATE KEY UPDATE....
INSERT INTO...ON DUPLICATE KEY UPDATE是MySQL中的一种特殊语法,用于在插入数据时,如果存在重复的键值,则执行更新操作。下面是一个示例:
假设我们有一个名为students的表,包含id、name和age三个字段,其中id是主键。我们想要插入一条数据,如果id已经存在,则更新name和age字段的值,否则插入一条新的记录。
```sql
INSERT INTO students (id, name, age) VALUES (1, 'John', 20)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);
```
上述语句的意思是,如果id为1的记录已经存在,则更新name和age字段的值为'John'和20;如果id为1的记录不存在,则插入一条新的记录,id为1,name为'John',age为20。
注意,VALUES(name)和VALUES(age)表示使用插入语句中的值来更新相应的字段。
insert into on duplicate key update测试代码
insert into on duplicate key update是一种MySQL数据库的语法,可以在向一个已有的记录插入新数据时,如果该记录已经存在,则更新原有记录的数据。下面是一段示例代码:
```
INSERT INTO test (id, name, age) VALUES (1, 'Alice', 25) ON DUPLICATE KEY UPDATE name='Alice', age=25;
```
这段代码的意思是向test表中插入一条id为1,name为'Alice',age为25的记录。如果test表中已经存在id为1的记录,则将原记录的name和age更新为'Alice'和25。