bash script com mysql insert into - faça outro na entrada duplicada

-1

Eu tenho uma tabela mysql com algumas restrições exclusivas. Eu tenho um script que faz algumas perguntas e insere as respostas na tabela mysql.

Eu não sei como dizer ao script para fazer outra coisa se existir uma entrada duplicada.

Gostaria de dar a opção de remover a entrada e adicionar a nova, ou retornar ao início para começar o script novamente.

Espero que isso faça sentido.

Preston

    
por Preston Cole 21.01.2018 / 23:46

1 resposta

1

Eu sugeriria executar uma consulta para ver se o registro existe primeiro e, em seguida, você pode ter uma lógica bash para decidir o que fazer com base no resultado da consulta. Talvez algo assim ...

CHECK_ROW_EXISTS=$(mysql -u dbuser -p --batch -N -e "SELECT COUNT(*) FROM dbname.dbtable WHERE id = ${ID_TO_CHECK}")

Usar --batch e -N removerá a formatação para podermos atribuir o resultado a uma variável bash e decidir o que fazer a partir daí.

A outra opção é verificar o código de status de saída da inserção do mysql e, se falhar, decidir o que fazer a partir daí.

Outras leituras: obtém o resultado da consulta sql sem tabela formato | Estouro de pilha

    
por ripperbone 22.01.2018 / 02:37