Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入或更新(如果存在)-为什么要插入2行而不是1行?_Mysql_Insert - Fatal编程技术网

Mysql 插入或更新(如果存在)-为什么要插入2行而不是1行?

Mysql 插入或更新(如果存在)-为什么要插入2行而不是1行?,mysql,insert,Mysql,Insert,我想在我的数据库上有一个insert和update if exists操作 我的表将“A”定义为主表 A int B VARCHAR 20 TEST int 为什么此查询返回“插入的2行”而不是1行 insert into test1 (A, B, TEST) values(2, "A", 19) on duplicate key update A=values(A), B=values(B), TEST=values(TEST) 使用ON DUPLICATE KEY UPDATE时,

我想在我的数据库上有一个insert和update if exists操作

我的表将“A”定义为主表

A int
B VARCHAR 20
TEST int
为什么此查询返回“插入的2行”而不是1行

insert into test1 (A, B, TEST) 
values(2, "A", 19) 
on duplicate key update 
A=values(A), B=values(B), TEST=values(TEST)
使用ON DUPLICATE KEY UPDATE时,如果将行作为新行插入,则每行受影响的行值为1,如果更新现有行,则每行受影响的行值为2

这被认为是区分全新行和现有行的更新