Запретить дублирование записей SQL

Я хочу иметь возможность предотвратить дублирование строк текстового поля SQL. То есть, если строка 1 имеет поле имени, которое уже определено как «Джон Смит», я не хочу, чтобы он мог добавить еще один «Джон Смит» (как это обычно бывает в этом названии).

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

О, и это на PHP-сайте.

Благодаря!

Solutions Collecting From Web of "Запретить дублирование записей SQL"

CREATE UNIQUE INDEX idxname ON tablename (fieldname); 

Добавление этого индекса гарантирует, что никакие повторяющиеся записи для поля fieldname не будут записаны в таблицу таблиц.

Вы получите ошибку MySQL со вторым клиентом. Вы должны обработать это в своем PHP-коде и снова разместить форму (вместо того, чтобы просто отображать сообщение об ошибке).

Другая возможность (для более сложных ситуаций) – это функция LOCK . Если вы заблокируете таблицу перед проверкой, а затем вставьте свою запись, параллельная операция (во втором окне браузера) будет отложена до тех пор, пока вы не отпустите блокировки. Затем запись будет сохранена, поэтому второй скрипт PHP увидит ее и обработает синтаксис.

DISTINCT также может использоваться для выбора уникальных строк.

 ... select distinct * from table1 ... 

Взгляните сюда , вам понадобится уникальная.