/ / ID exclusivo pode ser usado para evitar entrada duplicada no mysql? [fechado] - php, mysql, sql

O ID único pode ser usado para evitar entrada duplicada no mysql? [fechado] - php, mysql, sql

Diga para, se eu gostaria de uma coluna na tabelapara ter valores não iguais integer ou varchar, então o valor exclusivo pode ser usado com "insert ignore into" para evitar entrada de dados duplicados ou é melhor usar alguma função php ?.

Respostas:

1 para resposta № 1

Para evitar a entrada duplicada de dados, acho mais fácil usar o modificador AUTO_INCREMENT no campo para uma chave primária.

Dessa forma, você pode adicionar à tabela até o conteúdo do seu coração sem a preocupação de ter uma chave duplicada. Além disso, tente manter as coisas SQL com mySQL tanto quanto você puder.


1 para resposta № 2

insert ignore não irá inserir nada se houver uma duplicata no campo único. Também não irá gerar um erro, por isso depende do que você está implementando.


1 para resposta № 3

Crie um índice exclusivo na coluna que você deseja evitar duplicatas. Eu então recomendo usar:

INSERT INTO ...
ON DUPLICATE UPDATE columnName = columnName

ao invés de fazê-lo em PHP, porque você quer minimizar o número de chamadas para o banco de dados. Para fazer isso em PHP significa que você tem que fazer duas consultas: primeiro SELECT para ver se a linha já existe, então um INSERT.

ON DUPLICATE KEY UPDATE é preferível a INSERT IGNORE porque não impede que você seja notificado de outros erros. Você precisa especificar pelo menos uma coluna para atualizar, definindo a coluna para o seu valor atual, nada muda.