Copiando dados de uma tabela para outra com SQL.
Um dia precisei copiar os dados de uma tabela para uma outra e tentei descobrir uma forma de fazer isso sem a necessidade de programar. A solução é simples, basta você usar o campo INSERT aliado ao comando SELECT.
Na primeira linha você especifica a tabela que receberá os dados, basta informar a tabela os campos deverão receber os dados que virão de outra tabela. A parte do insert referente aos VALUES que é o grande pulo do gato, no lugar dos valores você faz um SELECT buscando pelos campos que você deseja inserir na tabela anterior.
INSERT INTO "xyz" ("coluna_1", "coluna_2", "coluna_3", ..., "coluna_n") SELECT "col_1", "col_2", "col_3", ... , "col_n" FROM "kwx"; |
Importante saber que os dados de col_1, col_2, col_3, …, col_n serão salvos nos campos coluna_1, coluna_2, coluna_3, …, coluna_n respectivamente. Portanto, os campos da tabela da tabela “xyz” devem ser do mesmo tipo do seu respectivo campo na tabela “kwx”. Apenas testei isso no PostgreSQL, mas acredito que funcione nos outros SGBDs.
Comentários