erison 63 Denunciar post Postado Setembro 3, 2012 DROP TABLE IF EXISTS `teste01`; CREATE TABLE `teste01` ( `id` int(11) NOT NULL AUTO_INCREMENT, `valor` decimal(11,2), `qtd` decimal(11,1), `valor_total` decimal(11,2), PRIMARY KEY(`id`) ) ENGINE=MYISAM ROW_FORMAT=default; DROP TRIGGER IF EXISTS `valor_total`; DELIMITER | CREATE TRIGGER `valor_total` BEFORE UPDATE ON `teste01` FOR EACH ROW BEGIN New.valor_total = (New.valor * New.qtd); END; | DELIMITER ; não to conseguindo criar esta trigger. alguem pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 Boa tarde amigo, Faltou um SET: DELIMITER | CREATE TRIGGER `valor_total` BEFORE UPDATE ON `teste01` FOR EACH ROW BEGIN SET New.valor_total = (New.valor * New.qtd); END; | DELIMITER ; Espero que resolva, abraço. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 3, 2012 ainda não deu certo :s Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 ainda não deu certo :s Eu executei desta forma aqui: USE banco; DROP TABLE IF EXISTS `teste01`; CREATE TABLE `teste01` ( `id` int(11) NOT NULL AUTO_INCREMENT, `valor` decimal(11,2), `qtd` decimal(11,1), `valor_total` decimal(11,2), PRIMARY KEY(`id`) ) ENGINE=MYISAM ROW_FORMAT=default; DROP TRIGGER IF EXISTS `valor_total`; DELIMITER | CREATE TRIGGER `valor_total` BEFORE UPDATE ON `teste01` FOR EACH ROW BEGIN SET New.valor_total = (New.valor * New.qtd); END; | DELIMITER ; E funcionou, tente colocar o USE "nome_do_seu_banco" no começo, ou acrescente ele antes do nome da tabela. Outro ponto importante: Você está usando o phpMyAdmin? Se estiver veja esse tópico: http://forum.imasters.com.br/topic/473725-triggers/ Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 3, 2012 eu coloquei pelo phpmyadmin e deu correto. e estava tetando pelo mysql front e deu erro, sabe dizer pq? Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 eu coloquei pelo phpmyadmin e deu correto. e estava tetando pelo mysql front e deu erro, sabe dizer pq? Estranho mesmo. Pelo MySQL-Front eu não tentei, usei o MySQL Workbench e deu. No tópico que eu passei no post anterior era o contrário, o colega estava tentando pelo phpMyAdmin e só deu pelo MySQL-Front. Enfim, ainda bem que funcionou :D Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 3, 2012 Estranho mesmo. Pelo MySQL-Front eu não tentei, usei o MySQL Workbench e deu. No tópico que eu passei no post anterior era o contrário, o colega estava tentando pelo phpMyAdmin e só deu pelo MySQL-Front. Enfim, ainda bem que funcionou :D outra coisa mysql-front ou Workbench; qual eo melhor? outra coisa, posso usa essa função em upadte e insert não? Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 O SQL-Front é bem leve eu gosto bastante dele. O Workbench é mais completo pois você pode fazer a modelagem do banco também e com alguns cliques copia / exporta o código pronto da modelagem e cria o banco. Além de oferecer algumas ferramentas a mais pra manipulação e monitoração do servidor. Ou seja, o Workbench é melhor, mas se você não tem costume de desenhar modelagens não necessita dele. Faça um teste e veja se te agrada e se prefere seguir com ele. Download. Sim você pode fazer Triggers para INSERT, UPDATE e DELETE. Esse artigo é ótimo, explica bem sobre os 3 casos, as particularides de cada um e os porquês. Havendo mais dúvidas fico a disposição, abraço. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 3, 2012 O SQL-Front é bem leve eu gosto bastante dele. O Workbench é mais completo pois você pode fazer a modelagem do banco também e com alguns cliques copia / exporta o código pronto da modelagem e cria o banco. Além de oferecer algumas ferramentas a mais pra manipulação e monitoração do servidor. Ou seja, o Workbench é melhor, mas se você não tem costume de desenhar modelagens não necessita dele. Faça um teste e veja se te agrada e se prefere seguir com ele. Download. Sim você pode fazer Triggers para INSERT, UPDATE e DELETE. Esse artigo é ótimo, explica bem sobre os 3 casos, as particularides de cada um e os porquês. Havendo mais dúvidas fico a disposição, abraço. porque no postgree e so colocar upadte, insert mas no mysql deu erro. e quando vo criar la no mysql-front ele não deixa eu selecionar mais de um , ou e so update ou e so insert. no caso eu tive que fazer 2 triggers mas acho que não era para ser deste modo. Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 Acredito que seja sim. Eu pelo menos nunca fiz uma Trigger só pra INSERT e UPDATE juntos. Acho que o MySQL restringe pois as Triggers de UPDATE podem contar com NEW e OLD, já as de INSERT só podem ter NEW. Sendo assim por questão de segurança o MySQL deve "renegar" essas Triggers conjuntas. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Setembro 3, 2012 sei pois cara esse topico esta resolvido muito obrigado :D Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 3, 2012 sei pois cara esse topico esta resolvido muito obrigado :D Satisfeito em ajudar, precisando estamos ae :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites