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.

3 comentários:

  1. Blz, porém como eu faço isso dentro de um arquivo PHP?

    ResponderExcluir
    Respostas
    1. Vc deve inserir o comando dentro da query (mysql_query), como vc usa normalmente para inserir dados.

      Excluir

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...