Isso também irá funcionar se você deseja transferir o valor antigo para outra coluna e atualizar o primeiro: UPDATE table SET columnA = 'new value', columnB = columnA. Como outra resposta diz - não esqueça a cláusula WHERE para atualizar apenas o necessário.
Carl di Ortus
5
I pensar em alguns proc complexo fazer um laço em cada registro quando a resposta é tão simples
DeFreitas
6
@deFreitas Um sábio me disse: se você está pensando em escrever um loop para realizar algo no SQL, está fazendo errado.
Daniel Patrick
95
UPDATE table_name SET
destination_column_name=orig_column_name
WHERE condition_if_necessary
@ Mark, isso realmente faz sentido, por que isso é rebaixado? Eu tive uma situação em que preciso copiar um valor de data de uma coluna para outra, e isso se aplica apenas a ALGUMAS das colunas, e não a todas. Portanto, ter um WHERE na declaração seria necessário.
FinnTheHumin
5
@finnTheHuman A pergunta como "copiar dados de todos os registros", que as respostas resposta anterior corretamente de modo que este não acrescenta nada
mmmmmm
7
@ Mark "Como isso difere da antiga resposta aceita", possui uma cláusula WHERE. "para que isso não adicione nada", eu discordo, ele adiciona algo. é um bom ponto para incluir a cláusula WHERE SE NECESSÁRIO. devemos ser responsáveis por respostas negativas. haters gon 'hate
finnTheHumin
No meu caso, adicionei uma coluna last_seen. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald
Eu discordo de um de vocês. Mas não quer dizer quem! Onde cláusula funciona como um mimo
Andrew Day
0
Isso atualizará todas as linhas nessas colunas se o modo de segurança não estiver ativado.
UPDATE table SET columnB = columnA;
Se o modo de segurança estiver ativado, você precisará usar uma cláusula where. Eu uso a chave primária como maior que 0 basicamente todos serão atualizados
UPDATE table SET columnB = columnA where table.column>0;
Respostas:
Que tal agora
Isso atualizará todas as linhas.
fonte
UPDATE table SET columnA = 'new value', columnB = columnA
. Como outra resposta diz - não esqueça a cláusula WHERE para atualizar apenas o necessário.fonte
UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
Isso atualizará todas as linhas nessas colunas se o modo de segurança não estiver ativado.
UPDATE table SET columnB = columnA;
Se o modo de segurança estiver ativado, você precisará usar uma cláusula where. Eu uso a chave primária como maior que 0 basicamente todos serão atualizados
UPDATE table SET columnB = columnA where table.column>0;
fonte