Eu tenho tabela - config . Esquema:
config_name | config_value
E eu gostaria de atualizar vários registros em uma consulta. Eu tento assim:
UPDATE config
SET t1.config_value = 'value'
, t2.config_value = 'value2'
WHERE t1.config_name = 'name1'
AND t2.config_name = 'name2';
mas essa consulta está errada :(
Pode me ajudar?
Respostas:
Experimente a sintaxe de atualização de várias tabelas
Aqui está a demonstração do SQLFiddle
ou atualização condicional
Aqui está a demonstração do SQLFiddle
fonte
config AS t1
ondeAS
é opcional.Você pode fazer isso com INSERT, conforme abaixo:
Isso insere novos valores na tabela, mas se a chave primária for duplicada (já inserida na tabela), os valores especificados serão atualizados e o mesmo registro não será inserido na segunda vez.
fonte
no meu caso, tenho que atualizar os registros maiores que 1000, para isso, em vez de acessar a consulta de atualização sempre que preferir isso,
78,77 são os IDs de usuário e, para esses IDs, preciso atualizar o base_id 999 e 88 respectivamente. Isso funciona para mim.
fonte
talvez para alguém seja útil
para o Postgresql 9.5 funciona como um encanto
esse SQL atualiza o registro existente e insere se novo (2 em 1)
fonte
A solução de Camille funcionou. Transformado em uma função básica do PHP, que grava a instrução SQL. Espero que isso ajude outra pessoa.
fonte
em vez disso
você pode usar
fonte
Execute o código abaixo para atualizar n número de linhas, onde ID pai é o ID do qual você deseja obter os dados e IDs filhos são os IDs que você precisa atualizar, portanto, é necessário adicionar o ID pai e os IDs filhos para atualizar todas as linhas que você precisa usando um pequeno script.
fonte
Supondo que você tenha a lista de valores a serem atualizados em uma planilha do Excel com config_value na coluna A1 e config_name em B1, você pode facilmente escrever a consulta lá usando uma fórmula do Excel como
=CONCAT("UPDATE config SET config_value = ","'",A1,"'", " WHERE config_name = ","'",B1,"'")
fonte
Execute o código abaixo se desejar atualizar todos os registros em todas as colunas:
e se você deseja atualizar todas as colunas de uma linha específica, execute o código abaixo:
fonte