MySQL Inserir chave duplicada ignorar

MySQL Inserir chave duplicada ignorar
Muitas vezes, existem dados conflitantes em tabelas ou conjuntos de resultados. Também é demorado para corrigir, e muitas vezes os registros repetidos precisam ser evitados. Identificar registros duplicados e excluí -los de qualquer tabela é necessária. Esta seção elaborará como evitar dados duplicados de aparecer dentro de uma tabela e como eliminar registros duplicados atuais. Neste guia, você estará aprendendo a usar a cláusula de ignorar inserir para evitar o erro.

Sintaxe:

Aqui está a sintaxe para a inserção ignorar a consulta.

>> inserir ignorar em table_name (col1, col2, col3) valores (value_list), (value_list), (value_list);

Inserir ignorar via Workbench:

Abra seu MySQL Workbench 8.0 do seu sistema e conecte -o à instância do banco de dados.

Na área de comando, você deve criar uma tabela "funcionário" com quatro colunas onde uma delas deve ser especificada como "única". Experimente a consulta abaixo na área de consulta do navegador para criar esta tabela. Selecione toda a consulta e clique no sinal de flash para executá -lo.

>> Crie funcionário da tabela (Id int Primary Key Not NULL, Nome Varchar (50) NÃO NULL, AGE VARCHAR (50), Salário Varchar (50), exclusivo (ID));

Após a criação, você pode encontrar a tabela "funcionário" na lista sob a opção de "tabelas" abaixo do banco de dados "dados".

Na visualização da grade, você pode inserir os registros sem digitar nenhuma consulta. Portanto, abra a visualização da grade da tabela "funcionário" e adicione alguns registros, como mostrado abaixo. Entramos em todos os registros exclusivos sem duplicatas. Aperte o botão 'Aplicar' para aplicar as alterações.

Uma nova janela será aberta com as consultas relevantes relacionadas aos registros que inserimos acima. Esta tela pode ser chamada de tela de "revisão". Se você quiser mudar alguma coisa, você pode fazer isso aqui. Caso contrário, pressione o botão Aplicar para executar as consultas.

Como você pode ver, a consulta foi executada com sucesso e os registros são salvos no banco de dados e sua tabela "funcionário". Teria gerado um erro se tivéssemos adicionado algum valor duplicado na coluna "ID". Toque no botão "Acabamento".

Isso foi tudo sobre a visão da grade. Agora, estaremos inserindo registros através da área de consulta. Enquanto isso, estamos inserindo registros duplicados desta vez para verificar a saída. Então, tentamos a consulta "Inserir" abaixo, onde temos duas listas de valores. Ambas as listas de valores têm o mesmo valor na coluna 'ID'. Selecione a consulta e pressione o sinal do flash para executar a consulta.

A consulta não funcionará corretamente e gerará um erro devido aos valores duplicados no comando Insert, conforme exibido na imagem.

Agora tente a mesma consulta acima com a cláusula de ignorar inserir e executá -la como apresentado.

Você pode ver que ele não gera um erro na área de saída, mas avisa que o comando contém valores duplicados.

Atualize a visão da grade da tabela "funcionário". A inserção ignora a consulta trabalhou metade. Ele inseriu a primeira lista de valores na tabela, mas a segunda lista de valores foi ignorada devido ao valor repetido "13".

Inserir ignorar via shell da linha de comando:

Para entender esse conceito, vamos abrir o shell cliente da linha de comando MySQL em seu sistema. Ao perguntar, digite sua senha MySQL para começar a trabalhar nela.

Agora é hora de criar uma tabela. Tente o comando abaixo para fazer isso. Criamos uma tabela chamada "Ministro", enquanto uma de suas colunas tem uma restrição única. É claro que a coluna "ID" aceitará apenas os valores únicos e não os valores duplicados.

>> Crie dados da tabela.Ministro (Chave Primária Mid Int Unique, não nula, nome Varchar (45), City Varchar (45));

A consulta funciona adequadamente e a tabela foi criada. Para entender a cláusula de ignorância de inserção, você deve primeiro ver o funcionamento do comando simples de inserção. Se você estiver usando o comando Insert para inserir vários dados de informações em uma tabela, o MySQL suspende a transação e gera uma exceção se um erro acontecer durante todo o processamento. Como conseqüência, a tabela não tem linhas adicionadas a ela. Vamos inserir o primeiro recorde da tabela "Ministro" usando a consulta abaixo da mecha. A consulta funcionará com sucesso porque a tabela está atualmente em branco, e não há registro para contraparar com.

Como a coluna "id" é única, quando tentamos a instrução abaixo no shell da linha de comando, ele gerará um erro. Isso ocorre porque adicionamos o valor "11" na consulta anterior e, devido à chave única, não nos permite adicionar o valor repetido novamente.

Portanto, ao verificar a tabela, podemos ver que a tabela tem apenas 1 registro adicionado pela primeira consulta de inserção.

>> Selecione * FROM dados.ministro;

Por outro lado, se você estiver usando a cláusula de ignorar inserir, as linhas de dados incorretas que acionam o erro serão negligenciadas e inserirão apenas as precisas. No comando abaixo, estamos usando o comando Ignore Ignore para evitar adicionar valores repetidos na tabela e ignorar o erro. Como você pode ver, a primeira lista de valores tem um valor duplicado “11” igual à da consulta anterior. Embora a segunda lista de valores seja única, ele mostrará 1 registro inserido na tabela, que é a segunda lista de valores. MySQL também indica que apenas 1 registro foi inserido e 1 aviso é gerado na mensagem. Você pode assumir que, se estivermos usando a cláusula de ignorar inserir, o MySQL fornece um aviso.

Como você pode ver na saída abaixo, temos apenas dois registros nesta tabela -Lista de valores fornecidos na consulta acima, que é esquecida.

>> Selecione * FROM dados.ministro;

Conclusão:

Fizemos todos os exemplos necessários de inserção ignorados em valores duplicados via MySQL Workbench e MySQL Command-Line Client Shell.