Предотвратить повторяющиеся записи таблицы базы данных - PullRequest
2 голосов
/ 30 августа 2010

Для предотвращения дублирования записей таблицы в базе данных я использую первичный ключ.Я просто добавляю информацию, и если это дубликат, то основной будет дубликатом, и он не будет добавлен в таблицу.

Должен ли я также выполнить SQL-запрос (перед попыткой добавления в базу данных) дляпосмотреть, если запись существует?Или это избыточно, поскольку у меня уже установлен первичный ключ?

Ответы [ 4 ]

5 голосов
/ 30 августа 2010

Излишне проверять наличие значения, если у вас уже есть ограничение для предотвращения дублирования.

Но это также будет неэффективно проверять перед вставкой, потому что другой параллельный клиент может вставить это значениев момент между вашей проверкой и вашей вставкой.Поэтому, даже если вы проверите сначала, вам все равно придется обрабатывать дубликаты ошибок ключа.

1 голос
/ 30 августа 2010

Определение « уникальное ограничение » для таблицы с нужным столбцом исправит все.Если есть дубликат, вы получите ошибку.

0 голосов
/ 30 августа 2010

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

0 голосов
/ 30 августа 2010

На большинстве платформ баз данных, когда вы создаете первичный ключ, операция завершится неудачно, если есть повторяющиеся записи, поэтому нет необходимости проверять это заранее.

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