PHP + SQL Server 2012 — Нарушение ограничения первичного ключа — Как избежать или помочь изменить дизайн логики

Это может быть больше вопросом типа дизайна / логики, но я пытаюсь опросить веб-сервис, который возвращает около 15 «записей» foo. Затем я беру эти 15 записей и пытаюсь использовать SQL INSERT. Если я проведу опрос еще раз и вернусь к 20 записям, я попытаюсь вставить только 5 новых записей.

Моя проблема заключается в загрузке первой страницы, когда он выполняет первый опрос, он всегда будет возвращать все записи. Когда я делаю начальную INSERT, я, конечно, получаю кучу ошибок «Нарушение ограничения PRIMARY KEY». В настоящее время это «нарочно», но мне интересно, есть ли лучший подход, или это хороший подход. Что-то о заполнении журнала ошибок php неоднократно говорит мне, что это не так. 🙂

Это решается просто с помощью SQL / Try / Catch?

Схема ниже:

введите описание изображения здесь

2

Решение

Если вы хотите избежать появления ошибок, вы можете проверить, какая из публикаций уже существует, с помощью SQL-утверждения, подобного этому

SELECT id FROM table WHERE id IN ([id list])

где id ваш столбец первичного ключа, table стол (сюрприз) и [id list] разделенный запятыми список идентификаторов, которые вы хотите вставить. Используйте функцию PHP implode (документация) создать его, если у вас есть идентификаторы в списке.

Затем просто исключите строки с возвращенными идентификаторами.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]