Предотвратить вставку повторной информации в SQL - PullRequest
3 голосов
/ 24 марта 2009

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

Я мог бы обыскать всю таблицу, но боюсь потери производительности при этом.

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

Ответы [ 4 ]

10 голосов
/ 24 марта 2009

Требуется УНИКАЛЬНОЕ ограничение для таблицы.

2 голосов
/ 24 марта 2009

Как сказал Джоэл, вы можете использовать УНИКАЛЬНОЕ ограничение для нескольких полей, где вам не нужны повторные данные.

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

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

0 голосов
/ 24 марта 2009

UNIQUE-ограничение заботится о том, чтобы данные не вставлялись дважды. Узнайте больше об этом в документации вашей СУБД.

0 голосов
/ 24 марта 2009

Идентификация и удаление дубликатов записей в базах данных на самом деле является предметом научных исследований. Помимо «лучших практик», вряд ли есть возможность дать единый и верный ответ.

У нас также была эта проблема с регистрационными данными компании, такими как адреса, телефоны и т. Д. Вам просто нужно сузить все возможные варианты данных и затем выполнить простые проверки. Вероятно, нет (хорошего) способа сделать эти проверки идеальными для любых данных.

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