@cccr85

Найти источник дублированния даных в mysql?

В общем есть 2 сервера, с одного второй забирает данные, парсит, и сохраняет в базу. Заметили, что начали появляться дублирующие записи. Дублей может быть сколько угодно. Начал грешить на клиент выводящий записи, посмотрел, через phpMyAdmin базу, все ок (вернее не ок :) ), в базе действительно дубликаты. Сделал сохранение пришедших с первого сервера данных + sql который отправляется в базу. Сейчас смотрю лог, в пришедших данных, в sql дублей нет, в базе дубли имеются…

Я зашел в тупик, подскажите хотя бы куда можно копнуть, что еще проверить.
  • Вопрос задан
  • 2817 просмотров
Пригласить эксперта
Ответы на вопрос 4
JeanLouis
@JeanLouis
Сделайте составной первичный ключ, чтобы он был уникален и вставляйте записи, используя INSERT IGNORE.
Ответ написан
AloneCoder
@AloneCoder
[object Object]
А триггеров нет у Вас там?
Ответ написан
@xmeoff
Выше уже подсказали решение.
От себя добавлю, что в вашем случае составной ключ не нужен, достаточно одного unique-индекса для поля 'id', если конечно его название соответствует содержанию).
Как-то так:
ALTER TABLE progstat ADD UNIQUE INDEX (id)
Ответ написан
@niko83
Может у вас нейким образом образуется несколько потоков (процессов)? например скрипт срабатывает по крону раз в минуту, а сам скрипт выполняется больше одной минуты. или что-то ещё
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы