Ygor Postado Agosto 14, 2019 Denunciar Compartilhar Postado Agosto 14, 2019 Olá, estou utilizando o SQLite para armazenamento de dados e eu gostaria de que, quando eu inserir um valor no banco de dados, se existir, atualizar. Caso contrário, inserir normalmente. Eu sei que existe INSERT e UPDATE, mas teria uma forma de fazer isso com apenas um comando? Link para o comentário Compartilhar em outros sites More sharing options...
bieel1503 Postado Agosto 15, 2019 Denunciar Compartilhar Postado Agosto 15, 2019 Citar Eu sei que existe INSERT e UPDATE, mas teria uma forma de fazer isso com apenas um comando? Tem sim! Você pode fazer isso com o 'UPSERT', que é um 'INSERT' normal com o 'ON CONFLICT' inserido. Mas o 'UPSERT' só funciona para a versão 3.24.0 ou superior, então, caso esteja utilizando uma versão que não suporte o 'UPSERT', você pode usar o 'INSERT OR REPLACE'. Os dois apenas funciona caso a fileira for 'UNIQUE'. Exemplo do 'UPSERT': --'name' sendo 'PRIMARY KEY' INSERT INTO jogadores(name, data) VALUES ('bieel1503', 'blabla') ON CONFLICT(name) DO UPDATE SET data='blabla'; Exemplo do 'INSERT OR REPLACE': --'name' sendo 'PRIMARY KEY'. --Esse comando vai inserir, caso não exista, ou deletar a coluna que deu conflito e recriar com os novos dados. INSERT OR REPLACE INTO jogadores(name, data) VALUES ('bieel1503', 'blabla'); Você pode ler mais sobre AQUI. 1 Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy2 Postado Agosto 20, 2019 Denunciar Compartilhar Postado Agosto 20, 2019 INSERT INTO tabela (campo1, campo2) VALUES (valor1, valor2) ON DUPLICATE KEY UPDATE valor1 = valor1, valor2 = valor2; // Algum campo tem que ser PRIMARY KEY Link para o comentário Compartilhar em outros sites More sharing options...
Blonorr Postado Setembro 2, 2019 Denunciar Compartilhar Postado Setembro 2, 2019 Seu tópico está sendo avisado de Inatividade. Caso não haja respostas em 7 dias, ele será fechado. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
iHuck Postado Setembro 10, 2019 Denunciar Compartilhar Postado Setembro 10, 2019 Seu tópico foi marcado como Inativo. Para reverter esta ação, entre em contato com a equipe de Moderação. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados