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 № 1Para 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.