sexta-feira, 7 de outubro de 2011

MySQL Copiar uma linha de uma tabela para outra - Copy a row to other table

Para tabelas IDENTICAS inclusive o ID (campo autoincrement):

insert into tabela2 select * from tabela1 where id='1'


Para tabelas com IDs diferentes**:

insert into tabela2 (`apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao`)   select `apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao` from tabela1 where id='1'

** basta tirar a coluna ID, no meu caso é a primeira coluna.

Para mudar apenas um valor** entre as tabelas:

insert into tabela2 (`apelido`, `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao`)   select 'LA WEB', `empresa`, `endereco`, `cidade`, `estado`, `cnpj`, `ie`, `ccm`, `cep`, `tipo`, `data_cadastro`, `data_update`, `endereco_faturamento`, `cidade_faturamento`, `estado_faturamento`, `cep_faturamento`, `cnpj_faturamento`, `ie_faturamento`, `ccm_faturamento`, `endereco_extra`, `cidade_extra`, `estado_extra`, `cep_extra`, `gringa`, `pais`, `status_envio`, `acao` from tabela1 where id='1'

** notem que no select ao invés de apelido esta 'La Web' ou seja todos os apelidos vão ser gravados como La Web, as aspas simples são obrigatórias.