[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Непонятное поведение MySQL при добавлении строк
GET
Привет.

Есть запрос:

INSERT IGNORE INTO `tab` (`id2`,`date`) VALUES ('55',NOW()) ON DUPLICATE KEY UPDATE `date`=NOW()


По id2 уникальный индекс, строка с id2=55 уже существует, остается только обновить дату, которая устарела.

Все прекрасно работает, но почему PMA пишет мне, что

Цитата
Добавлено 2 строки. ( Запрос занял 0.0005 сек. )


он же не добавляет строки, а обновляет 1 строку и почему 2?


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
Цитата (ABC @ 15.02.2014 - 19:03)
он же не добавляет строки, а обновляет 1 строку и почему 2?

А что он пишет, когда на самом деле вставляет? Правильные слова? Вопрос к тому, что там, может быть, просто некорректные предложения заложены для некоторых ситуаций.
2 вместо 1... Не буду утверждать ничего, не знаю точно про Мускуль. Могу только предположить, что считает 1 раз попытку записи, второй раз апдейт. И строку про "добавление" пишет по причине того, что первым была именно попытка добавления.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
GET
sergeiss

блин EXPLAIN не работает для INSERT, как проследить корректность та smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
T1grOK
Все нормально по сути INSERT затронул существующую строку и UPDATE тоже одну.
Это описано в оф. мануале

Цитата
With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if the row is inserted as a new row, 2 if an existing row is updated, and 0 if an existing row is set to its current values. If you specify the CLIENT_FOUND_ROWS flag to mysql_real_connect() when connecting to mysqld, the affected-rows value is 1 (not 0) if an existing row is set to its current values.


http://dev.mysql.com/doc/refman/5.5/en/ins...-duplicate.html

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
GET
T1grOK
Ух вооон как...спасибо!

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.