Eu fazia bastante desses desafios no sybase, eu estou sem mysql pra testar isso ai, mas veja se é possivel fazer isso aqui
INSERT INTO tabelac
SELECT dattaba
FROM tabelaa
inner JOIN tabelab ON tabelaa.dattaba=tabelab.dat
where ((tabelaa.dattaba = tabelab.dat) and (tabelaa.nomea = tabelab.nomeb));
Existia uma opção de incluir diretamente o resultado de uma query direto em outra tabela, se houver registros consequentemente serão inclusos, caso não existam não acontece nada.
Não se assuste com a solução, nós controlavamos a transação usando rowcount(linhas afetadas), para não explodir o segmento de log.
Abraço!
G
gzofera
pois eh consegui fazer essa parte ai tipow… a condição
o problema agora é
tipow… preciso que uma variavel receba o valor do campo
exemplo
var_nome = campo tabela A
var_outro = campo tabela B
nao toh conseguindo fazer isso agora
sabe como poderia resolver??
se eu conseguir mato a charada
vlws pela forca amigo
D
DaviPiala
A estrutura da tabela C é formada pela tabela A e B? Eu entendi direito
no select dentro do insert vc não poderia fazer isso aqui?
insert into tabela_c
tabela_a.campo_1
tabela_b.campo_2
tabela_a.campo_3
G
gzofera
nao eh possivel amigo mysql nao suporta, testei aki e nda tenho q passar para variaveis mesmo
sabe como posso fazer?
R
Robsonvnt
olha amigo
jeito ate acredito que tenha
mas particularmente eu prefiro
utilizar PostgreSQL para esse tipo de aplicação
ele é excelente
você pode trabalhar com varias linguagens, como o próprio java
para criar funções e triggers
G
gzofera
amigo o topico eh sobre mysql
fiko grato por suas recomendacoes
alguem ai sabe como posso resolver esse problem em mysql?
vlws
V
victorwss
Tem que ser MySQL 5 ou superior.
G
gzofera
sim a versao que estou utilizando eh a 5.0
ninguem?
G
gzofera
eh possivel fazer isso em mysql???
quero que a variavel A receba o valor do campo A da tabela A
e que a variavel B receba o valor do campo B da tabela B
eh possivel?
ou mysql tem mais essa limitação
vlws
G
gzofera
bom amigos consegui resolver o problema, no meu caso utilizei dois cursores nao sei se foi a melhor forma mais no momento atende a demanda
o codigo ficou assim
DELIMITER$$DROPPROCEDUREIFEXISTS`teste`.`carga_c`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`carga_c`()begin-- variaveis que serao utilizadasDECLAREexiste_mais_linhasINTDEFAULT0;DECLAREvar_idint;DECLAREvar_nomevarchar(255);DECLAREvar_sobrenomevarchar(255);DECLAREvar_datvarchar(255);-- Definição do cursorDECLAREvarreTabelaCURSORFORSELECTdattaba,nomeaFROMtabelaainnerJOINtabelabONtabelaa.dattaba=tabelab.datwhere((tabelaa.dattaba=tabelab.dat)and(tabelaa.nomea=tabelab.nomeb));DECLAREcur2CURSORFORSELECTsobreNomeFROMtabelabinnerJOINtabelaaONtabelab.dat=tabelaa.dattabawhere((tabelab.dat=tabelaa.dattaba)and(tabelab.nomeb=tabelaa.nomea));-- Definição da variável de controle de looping do cursorDECLARECONTINUEHANDLERFORNOTFOUNDSETexiste_mais_linhas=1;-- Abertura do cursorOPENvarreTabela;opencur2;-- Looping de execução do cursormeuLoop:LOOPFETCHvarreTabelaINTOvar_dat,var_nome;fetchcur2intovar_sobrenome;-- Controle de existir mais registros na tabelaIFexiste_mais_linhas=1THENLEAVEmeuLoop;ENDIF;insertintotabelacSETidc=var_id,nomea=var_nome,sobrenome=var_sobrenome,datc=var_dat;-- Retorna para a primeira linha do loopENDLOOPmeuLoop;end$$DELIMITER;
existe uma outra forma de passar o conteudo de um campo para a variavel, exemplo
SELECT column[,…] INTO variable[,…] table_expression