[resolvido]insert a partir de select na mesma tabela

7 respostas
X

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

7 Respostas

R

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

A

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!

X

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.

G

o certo é

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

X

geovanebg:
o certo é

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

vlw, era isso mesmo que precisava.

vlw a todos

G

qualquer coisa é só perguntar

L

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?

Criado 30 de dezembro de 2008
Ultima resposta 28 de jun. de 2013
Respostas 7
Participantes 5