запись данных в MySQL с проверкой

iputin
На сайте с 26.11.2013
Offline
4
700

собственно есть таблица которая будет в дальнейшем обновляться при помощи xml

уникальный ID также хранится в файле XML

и вот тут стоит вопрос как лучше проверять обновлять запись или добавлять

siv1987
На сайте с 02.04.2009
Offline
427
#1
iputin
На сайте с 26.11.2013
Offline
4
#2
siv1987:
ON DUPLICATE KEY UPDATE

нет, мне не надо менять ключ.

Мне надо определить - если запись существует, то обновляем запись не меняя ключа, а если записи нет, то добавляем новую запись.

dkameleon
На сайте с 09.12.2005
Offline
386
#3
iputin:
нет, мне не надо менять ключ.

вы хоть почитайте-то документацию.

Дизайн интерьера (http://balabukha.com/)
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#4

REPLACE INTO * подойдет?

iputin
На сайте с 26.11.2013
Offline
4
#5
Zlo_606ep:
REPLACE INTO * подойдет?

то что нада

IL
На сайте с 20.04.2007
Offline
435
#6
iputin:
то что нада

[Тут картинка лицопальма]

Replace удаляет существующую запись, а on duplicate - позволяет отредактировать (выбирая, какие именно поля следует обновлять).

Скорее всего, Вам подойдёт любой.

p.s. А вообще, для ускорения имеет смысл складывать результаты обработки XML в другую таблицу (временную или Memory), а потом одним запросом обновить по ключу.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
iputin
На сайте с 26.11.2013
Offline
4
#7
ivan-lev:
Replace удаляет существующую запись, а on duplicate - позволяет отредактировать (выбирая, какие именно поля следует обновлять).
Скорее всего, Вам подойдёт любой.

собственно чтобы вам более понятно было

таблица - это справочник ФИАС в которой дублирование записей не приемлемо

ivan-lev:
p.s. А вообще, для ускорения имеет смысл складывать результаты обработки XML в другую таблицу (временную или Memory), а потом одним запросом обновить по ключу.

ну да при больших таблицах InnoDB это имеет смысл

siv1987
На сайте с 02.04.2009
Offline
427
#8
iputin:
нет, мне не надо менять ключ.

RTFM

MySQL:

If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed.

..........

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий