Esta posta. Antes de começar com este post, verifique se você está conectado ao seu servidor local MySQL e escolheu um banco de dados onde deseja trabalhar.
Insira uma nova linha apenas se os dados não existirem usando a instrução "inserir ignorar"
Bem, a resposta para a pergunta no título é bem simples e direta. Basta usar o “INSERIRPalavra -chave junto com a “IGNORARPalavra -chave. Isso garantirá que os novos dados ou a consulta de inserção sejam executados apenas quando nenhuma entrada anterior dos dados for encontrada no MySQL. Para obter uma breve visão geral disso, dê uma olhada na seguinte sintaxe:
Inserir ignorar no [nome da tabela] ([column1-name], [column2-name], [column3-name]) valores ([value1], [value2], [value3]);Vamos ver um exemplo se o usuário quiser inserir um valor de linha “1","John" e "Corça" no "Cliente”Tabela para as colunas“Eu ia,”“Primeiro nome" e "Sobrenome”Respectivamente. Execute esta consulta para inserir esses valores, se houver, se não houver uma linha, já existe esses valores:
Selecione * do cliente;A saída contém duas tabelas exibindo dados da tabela antes e depois de executar a consulta. Você pode notar que nada está mudando na tabela porque a linha já existia, então o MySQL ignorou com sucesso o processo de inserção sem exibir o erro:
Insira uma nova linha apenas se os dados não existirem usando a cláusula "onde não existe"
Em Mysql, o “ONDE NÃO EXISTE”INSIRA DENTRO DE”Declaração com uma subconsulta para definir uma condição. Quando esta cláusula é usada com a subconsência “(Selecione * de [Tabela-name] [colun-name] = [Expression]);”Verifica se uma linha existe na tabela que cumpre a condição. Se uma linha existe, o “Onde não existe“Cláusula retornará um valor falso, e a“ “Selecione”A declaração não retornará nenhuma linha. Como resultado, a linha não será inserida na tabela. A sintaxe é fornecida abaixo:
Inserir em [tabela-name] ([column1-name], [column2-name], [column3-name])Vamos ver um exemplo se o usuário quiser inserir uma linha na tabela de funcionários que contêm valores “1","Americanas" e "Henriot”Nas colunas“eu ia","Nome da empresa" e "Nome de contato”Respectivamente. Mas somente se uma fila com um id de “1”Não é encontrado na tabela ou não existe. Nesse caso em particular, a consulta se tornará:
Selecione * do funcionário;A saída exibe uma nova linha que não é inserida como a linha com o “eu ia" igual a "1Já existia.
Insira uma nova linha apenas se os dados não existirem usando a cláusula “On Duplicate Key Atualize”
Bem, outra maneira é usar o “Na atualização de chave duplicada”Cláusula em mysql. Como esta cláusula será usada com a consulta "Inserir em" formando uma execução de "if-else". Portanto, isso significa que os dados dentro da tabela só serão atualizados se for exclusivo. Caso contrário, nenhuma mudança ocorreria. A sintaxe geral para isso é a seguinte:
Inserir em [tabela-name] ([column1-name], [column2-name], [column3-name]) valores ([value1], [value2], [value3])Vamos ver um exemplo, para inserir valores em “2","Pascale","Nixon","Londres","Reino Unido" e “(171) 555-7788" na mesa "Cliente”Para as colunas“Eu ia","Primeiro nome","Sobrenome","cidade","país" e "telefone”Respectivamente. Se a linha não existir, ela será inserida. Caso contrário, ele atualizará os valores onde o “Id = idA condição se reúne. Execute esta consulta:
Selecione * do cliente;Esta é a tabela antes de executar a consulta, você pode ver “Eu ia" igual a "2" não existe:
Depois de executar a consulta, esta consulta inserirá novas linhas na tabela:
Você inseriu com sucesso uma nova linha, pois os dados não existem antes de executar a consulta.
Conclusão
No MySQL, insira uma nova linha apenas se os dados ainda não existirem usando o “Inserir ignorar"Declaração ou"Onde não existe”Cláusula na“INSIRA DENTRO DE" declaração. Outra maneira de fazer isso é usar o “Na atualização de chave duplicada”Cláusula na“INSIRA DENTRO DE”Declaração para atualizar se a linha já existe. Caso contrário, adicione uma nova linha. O post discutiu como inserir uma nova linha apenas se os dados não existirem.