Mysql 如果在运行';时已经存在一个全列同一行,会发生什么情况;替换为';sql?

Mysql 如果在运行';时已经存在一个全列同一行,会发生什么情况;替换为';sql?,mysql,replace,Mysql,Replace,我们知道,如果主列与当前存在的行相同,“替换”将删除主列同一行,然后插入新行 例如,id是t的主id: 创建表t(idint(10),numint(10),主键(id); 现在我运行'replace into t(id,num)值(1123);'两次 在我第二次运行这个sql时,mysql会“愚蠢地”删除并再次插入这一行吗?或者,mysql足够聪明,什么也不做 /////////更新如下 mysql>替换t值(1,3); 查询正常,1行受影响(0.01秒)------ mysql>替换t值(1,

我们知道,如果主列与当前存在的行相同,“替换”将删除主列同一行,然后插入新行

例如,id是t的主id: 创建表t(
id
int(10),
num
int(10),主键(
id
); 现在我运行'replace into t(id,num)值(1123);'两次

在我第二次运行这个sql时,mysql会“愚蠢地”删除并再次插入这一行吗?或者,mysql足够聪明,什么也不做

/////////更新如下

mysql>替换t值(1,3); 查询正常,1行受影响(0.01秒)------

mysql>替换t值(1,4); 查询正常,2行受影响(0.01秒)---

mysql>替换t值(1,4); 查询正常,1行受影响(0.01秒)---

当我第一次替换(1,4)时,它说2行受影响;第二次它说1行受影响。 我们第一次知道,它删除(1,3)并插入(1,4);但第二次,mysql服务器发生了什么?
删除(1,4)并再次插入(1,4)?或者,什么也不做?

为什么不试试看呢?我投票结束这个问题,因为它不是一个编程问题。这是OP懒惰的问题,而不仅仅是尝试它。@Bohemian也许我没有清楚地描述。mysql>替换t值(1,3);查询OK,1行受影响(0.01秒)---mysql>替换t值(1,4);查询OK,2行受影响(0.01秒)---mysql>替换t值(1,4);查询OK,1行受影响(0.01秒)---第一次替换(1,4),表示2行受影响;第二次它说1行受影响。第一次,删除(1,3)并插入(1,4);第二次,mysql服务器发生了什么?删除(1,4)并再次插入(1,4)?还是什么都不做?