Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Impedir entradas SQL duplicadas

CREATE UNIQUE INDEX idxname ON tablename (fieldname);

Adicionar este índice garantirá que nenhuma entrada duplicada para fieldname campo será gravado em tablename tabela.

Você receberá um erro MySQL com o segundo cliente. Você deve lidar com isso em seu código PHP e colocar o formulário novamente (em vez de apenas exibir a mensagem de erro).

Uma outra possibilidade (para situações mais complexas) é o LOCK funcionalidade. Se você bloquear a tabela antes de verificar e inserir seu registro, uma operação simultânea (na segunda janela do navegador) será atrasada até que você libere os bloqueios. Então o registro já estará salvo, então o segundo script PHP o verá e lidar com a situação.