MySQL ROW_COUNT после ЗАМЕНЫ - PullRequest
       3

MySQL ROW_COUNT после ЗАМЕНЫ

0 голосов
/ 18 января 2019

Я получаю некоторые странные значения для ROW_COUNT после REPLACE.В приведенном ниже примере второй REPLACE возвращает 2, а не 1. Может кто-нибудь объяснить, почему?Это происходит как на MySQL 5.6, так и на 5.7

create table test(
    id int not null primary key, 
    d  int not null unique
);

replace into test(id,d) values(1,1);
select row_count(); -- returns 1

replace into test(id,d) values(1,1);
select row_count(); -- returns 2... why?

1 Ответ

0 голосов
/ 18 января 2019

На самом деле поведение очень хорошо задокументировано :

Для операторов REPLACE значение затронутых строк равно 2, если новая строка заменена старая строка, потому что в этом случае одна строка была вставлена ​​после дубликат был удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...