Triggers Replicar Inverter posição das chaves referenciadas
Triggers->Replicar e inverter a posição das chaves referenciadas
Ajuda...
Por favor, necessito de sua ajuda..., no meu exemplo necessito criar a seguinte trigger...
´tabelas abaixo´
Ex:
tabela capitais
id(int), nome(varchar)
01, Florianópolis
02, Porto Alegre
03, Rio de Janeiro
tabela distancia
id1(int), id2(int), distancia(varchar), troca_posicao(char)
01 , 02 , 600Km , N
para a tabela distancia -> ao inserir dados nos campos id1, id2 e distancia
essa trigger faça a inserção contraria de valores para os campos id1 e id2 e mantenha o valor do campo distancia
Ex1: se para os campos id1=1 e id2=2 , distancia=600Km aciona a trigger que devera inserir id1=2 e id=1, distancia=600Km
Ex2
tabela distancia
id1(int), id2(int), distancia(varchar), troca_posicao(char)
[b:dd33feec30] 01 , 02 , 600Km , N[/b:dd33feec30]
aciona a trigger de insersão....e a próxima linnha devera conter....
[b:dd33feec30] 02 , 01 , 600Km , S[/b:dd33feec30]
Bom ...minha trigger ficou assim...mas não funciona....
[b:dd33feec30]DELIMITER $$
CREATE TRIGGER tr_duplica
AFTER INSERT ON distancia FOR EACH ROW
BEGIN
if new.troca_posicao = ´N´ then
INSERT INTO distancia (NEW.id2, NEW.id1, New.distancia, ´S´);
end if;
END;
$$
DELIMITER ;[/b:dd33feec30]
alguem pode me ajudar a resolver este problema?
Ajuda...
Por favor, necessito de sua ajuda..., no meu exemplo necessito criar a seguinte trigger...
´tabelas abaixo´
Ex:
tabela capitais
id(int), nome(varchar)
01, Florianópolis
02, Porto Alegre
03, Rio de Janeiro
tabela distancia
id1(int), id2(int), distancia(varchar), troca_posicao(char)
01 , 02 , 600Km , N
para a tabela distancia -> ao inserir dados nos campos id1, id2 e distancia
essa trigger faça a inserção contraria de valores para os campos id1 e id2 e mantenha o valor do campo distancia
Ex1: se para os campos id1=1 e id2=2 , distancia=600Km aciona a trigger que devera inserir id1=2 e id=1, distancia=600Km
Ex2
tabela distancia
id1(int), id2(int), distancia(varchar), troca_posicao(char)
[b:dd33feec30] 01 , 02 , 600Km , N[/b:dd33feec30]
aciona a trigger de insersão....e a próxima linnha devera conter....
[b:dd33feec30] 02 , 01 , 600Km , S[/b:dd33feec30]
Bom ...minha trigger ficou assim...mas não funciona....
[b:dd33feec30]DELIMITER $$
CREATE TRIGGER tr_duplica
AFTER INSERT ON distancia FOR EACH ROW
BEGIN
if new.troca_posicao = ´N´ then
INSERT INTO distancia (NEW.id2, NEW.id1, New.distancia, ´S´);
end if;
END;
$$
DELIMITER ;[/b:dd33feec30]
alguem pode me ajudar a resolver este problema?
Mcasagra
Curtidas 0