Enziguri Posted April 20, 2012 at 04:23 PM Report #450240 Posted April 20, 2012 at 04:23 PM Boas, DB1: INSERT INTO `towny_nations` (`name`, `towns`, (...etc...)) VALUES DB2: INSERT INTO `web_categories` (`id`, `parent`, `name`, (...etc...)) VALUES tenho estas duas tabelas em bases de dados diferentes, em que quero que crie outra linha na DB2 com o campo name da DB1 e adicionar o numero 10 no campo parent. queria fazer exactamente o mesmo com outras tabelas da DB1. Se o nome na DB1 alterar deve tambem alterar apenas o nome na DB2. Isto tudo a tempo real, sem ter que executar o script para fazer essa copia, uma especie de loop... Se alguem tiver alguma solução agradecia, visto que não sou la grande espingarda em bases de dados... Obrigado desde ja
brunoais Posted April 20, 2012 at 06:59 PM Report #450275 Posted April 20, 2012 at 06:59 PM Se percebi bem a pergunta, então só é possível usando triggers. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Enziguri Posted April 20, 2012 at 10:53 PM Author Report #450340 Posted April 20, 2012 at 10:53 PM pois a minha questão é como... alguem tem conhecimento de algum website com um bom tutorial?
brunoais Posted April 21, 2012 at 05:03 PM Report #450417 Posted April 21, 2012 at 05:03 PM Aprende SQL/PL. É disso q precisas. Mas n sei aonde é q há bons tutorials disso. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Enziguri Posted April 21, 2012 at 05:21 PM Author Report #450425 Posted April 21, 2012 at 05:21 PM haha estou a ler isto a ver se me ajuda e a ver se me safo lol http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html Obrigado
Enziguri Posted April 23, 2012 at 08:30 PM Author Report #450959 Posted April 23, 2012 at 08:30 PM delimiter | CREATE TRIGGER nation_create AFTER INSERT ON mc_towny.towny_nations FOR EACH ROW BEGIN INSERT INTO website.web_kunena_categories SET name = NEW.name; END; | delimiter ; Como já disse nao percebo la muito de mysql, tenho este pedaço de codigo e está a darme este erro... só quero copiar uma coluna para já, talvez 2 ou 3 quando conseguir copiar uma... mas para já quero por a funcionar so com uma... Error Code: 1235. This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' alguém consegue dizerme como funciona? :S Obrigado Edit: Acrescentada formatação do código (Rechousa)
brunoais Posted April 23, 2012 at 09:05 PM Report #450978 Posted April 23, 2012 at 09:05 PM Tu já tens um trigger para esse evento. Experimenta remover esse trigger anterior antes de tentares adicionar um novo (esse). "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Enziguri Posted April 23, 2012 at 10:08 PM Author Report #451009 Posted April 23, 2012 at 10:08 PM ja encontrei, só uma questao, como modifico o trigger? preciso de apaga-lo na pasta da base de dados sempre que o quero modificar? ou posso simplesmente alterar? tenter ALTER TRIGGER .... mas nao funcionou.
brunoais Posted April 24, 2012 at 07:16 AM Report #451055 Posted April 24, 2012 at 07:16 AM Não existe o alter trigger (nem faz sentido existir pq é muito difícil saber o q queres alterar com código parcial). executas o drop trigger e depois crias um novo. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Enziguri Posted April 29, 2012 at 03:16 PM Author Report #452044 Posted April 29, 2012 at 03:16 PM Bem, com este padaço de codigo o que me está a dar a entender é que nao está a "ler" a parte to ELSE principal(segundo). Alguém me consegue ajudar a encontrar onde está o erro? obrigado delimiter | DROP TRIGGER IF EXISTS town_create| CREATE TRIGGER town_create BEFORE INSERT ON mc_towny.towny_towns FOR EACH ROW BEGIN SET @ID = (SELECT id FROM website.web_kunena_categories WHERE name = NEW.nation); SET @TOWN = (SELECT name FROM mc_towny.towny_towns WHERE name = NEW.name); SET @NEWID = (select max(ordering) from website.web_kunena_categories); IF EXISTS (SELECT parent FROM website.web_kunena_categories WHERE name = NEW.name) THEN IF (SELECT nation FROM mc_towny.towny_towns WHERE name = NEW.name) IS NULL THEN UPDATE website.web_kunena_categories SET parent = 14 WHERE name = @town; ELSE UPDATE website.web_kunena_categories SET parent = @ID WHERE name = @town; END IF; ELSE IF (SELECT nation FROM mc_towny.towny_towns WHERE name = NEW.name) IS NULL THEN INSERT INTO website.web_kunena_categories VALUES ('', 14, NEW.name, 0, 0, 0, 1, NULL, 'joomla.level', 1, 1, 1, 8, 1, @NEWID + 1, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, 0, 0, '', '', '', 0, 0, 0, 0, 0); ELSE INSERT INTO website.web_kunena_categories VALUES ('', @ID, NEW.name, 0, 0, 0, 1, NULL, 'joomla.level', 1, 1, 1, 8, 1, @NEWID + 1, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, 0, 0, '', '', '', 0, 0, 0, 0, 0); END IF; END IF; END; | delimiter ;
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now