Fórum como dar update em uma coluna de uma tabela x pegando os valores de uma tabela y #474292
27/03/2014
0
Eu estou precisando dar um UPDATE em uma coluna de uma tabela x setando todos os registros dessa coluna da tabela x igual a coluna da tabela y??
é possível fazer isso???
Ronald Santos
Curtir tópico
+ 0Posts
01/04/2014
Valquiria Silva
Primeiro os campos nas duas tabela devem compatíveis(deve ter o mesmo tipo e tamanho) ou será necessário fazer um cast.
Vejo dois caminhos possíveis:
1 - fazer uma procedure
create procedure PROCEDURE
as
declare variable XCOLUNA;
begin
for select COLUNAY -- coluna da tabela que vc quer pegar os dados
from TABELAY
into :XCOLUNA --- variavel
do
update TABELAX set COLUNAX = :XCOLUNA where ***; --- aqui vc tem que definir um where
--- senão todos os registro da tabela X ficarão com o mesmo valor
suspend;
end
2 - Registro a registro assim
update TABELAX set COLUNAX = (select COLUNAY from TABELAY where id_y=1)
where id_X=1
Gostei + 0
02/04/2014
Ronald Santos
Muito obrigado pelas dicas eu irei fazer o teste eu havia tentado daseguinte forma
update tabelax set colunax = select colunay from tabela where idy=idx
A tabelax é ligada a tabelay pelo ID e assim queria pegar todos os registros que tivessem o mesmo id!
Mas muito obrigado eu irei testar das duas formas e assim que terminar eu lhe darei um retorno.
Primeiro os campos nas duas tabela devem compatíveis(deve ter o mesmo tipo e tamanho) ou será necessário fazer um cast.
Vejo dois caminhos possíveis:
1 - fazer uma procedure
create procedure PROCEDURE
as
declare variable XCOLUNA;
begin
for select COLUNAY -- coluna da tabela que vc quer pegar os dados
from TABELAY
into :XCOLUNA --- variavel
do
update TABELAX set COLUNAX = :XCOLUNA where ***; --- aqui vc tem que definir um where
--- senão todos os registro da tabela X ficarão com o mesmo valor
suspend;
end
2 - Registro a registro assim
update TABELAX set COLUNAX = (select COLUNAY from TABELAY where id_y=1)
where id_X=1
Gostei + 0
02/04/2014
Valquiria Silva
Entendi,
como você fez também funciona.
Abraço.
Gostei + 0
02/04/2014
Ronald Santos
Eu tentei daquela forma que lhe mostrei mas deu erro!
Entendi,
como você fez também funciona.
Abraço.
Gostei + 0
02/04/2014
Valquiria Silva
e qual versão do firebird esta usando?
Gostei + 0
03/04/2014
Ronald Santos
Invalid token Engine Code : 335544569 Engine Message : Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 31 select
acima está o erro que recebo na saida do comando
e qual versão do firebird esta usando?
Gostei + 0
03/04/2014
Valquiria Silva
assim
update tabelax set colunax = (select colunay from tabela where idy=idx)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)