[resolvido]insert a partir de select na mesma tabela

Dae pessoal,

estou tentando fazer um insert a partir de um select, alterando somente um cod, o resto ficaria igual, mas não estou conseguindo.

se eu fizer assim da problema com PK

insert into ectbhistoricopadrao (cdempresa, cdhistoricopadrao,dehistoricopadrao)
select h1.cdempresa, h1.cdhistoricopadrao, h1.dehistoricopadrao
from ectbhistoricopadrao h1
where h1.cdempresa = 1

assim da erro

insert into ectbhistoricopadrao (cdempresa, cdhistoricopadrao, dehistoricopadrao) values (2, select h1.cdhistoricopadrao, h1.dehistoricopadrao from ectbhistoricopadrao h1 where h1.cdempresa = 1)

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 11.
select.

fiz uma busca no google, mas os exemplos sempre eram de tabelas diferentes.

vlw

cara acho isso meio gambiarra
vc teria que fazer um select pra cada valor inserido

Ainda não deu para entender o que estás tentando fazer

insert into ectbhistoricopadrao (cdempresa, cdhistoricopadrao,dehistoricopadrao)
select h1.cdempresa, h1.cdhistoricopadrao, h1.dehistoricopadrao
from ectbhistoricopadrao h1
where h1.cdempresa = 1

Esse trecho dá erro pq você provavelmente tá tentando inserir um valor existente.

Abraços!

eh q tenho uma opcao de copiar o historico entre empresas,
nao queria carregar numa lista os historicos de uma empresa, criar obejto com a segunda empresa e salvar, gostaria de fazer direto.

o certo é

insert into ectbhistoricopadrao (cdempresa, cdhistoricopadrao, dehistoricopadrao) select 2 as cdempresa, h1.cdhistoricopadrao, h1.dehistoricopadrao from ectbhistoricopadrao h1 where h1.cdempresa = 1

[quote=geovanebg]o certo é

insert into ectbhistoricopadrao (cdempresa, cdhistoricopadrao, dehistoricopadrao) select 2 as cdempresa, h1.cdhistoricopadrao, h1.dehistoricopadrao from ectbhistoricopadrao h1 where h1.cdempresa = 1[/quote]

vlw, era isso mesmo que precisava.

vlw a todos

qualquer coisa é só perguntar

Pessoal, tenho o mesmo problema. Esta query dá erro:

INSERT INTO `tables` (`table`) show tables WHERE (select database()) NOT IN (SELECT `table` FROM `tables`)

Já esta, lista as tabelas do mysql que não estejam dentro de uma tabela minha:

Alguma idéia?