demondark 0 Denunciar post Postado Setembro 2, 2011 Galera nunca fiz nada programando dentro do MySql. Sempre usei php para interpretar, inserir consultar tudo. Mas a um bom tempo sei que tem como fazer as tabelas executarem rotinas. Minha duvida écomo? O que preciso acredito ser facil. Tenho 1 campo chamado COUNT dentro de 1 tabela. Preciso que neste campo estejá o numero de registro de outra tabela. Que aumenta e diminui o dia todo. Fiz 1 cron no php para fazer isso mas a tabela agora passa de 20 mil registro e ta me dando problemas. Tem uma forma do proprio mysql atualizar ela? Não é o caso mas vou dar 1 exemplo. Tabela usuario NOME | SENHA | POST Tabela POST tem 100 registros. A cada 5 min ou menos o sistema verifica quantos posts tem o usuario e atualiza o campo post. Tem como? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 4, 2011 http://dev.mysql.com/doc/refman/5.1/en/events.html Compartilhar este post Link para o post Compartilhar em outros sites
rmlm 0 Denunciar post Postado Setembro 5, 2011 É muito fácil... Só tens de criar dois triggers. Triggers são "funçoes" que são activadas através de mudanças (SELECT, INSERT, DELETE, UPDATE) na base de dados Você terá que criar um trigger para o DELETE e outro para o INSERT... Este trigger incrementa quando e adicionado um registo: DELIMITER $$ DROP TRIGGER IF EXISTS incrementa $$ CREATE TRIGGER incrementa BEFORE INSERT ON "Sua tabela que contem o COUNT" FOR EACH ROW BEGIN UPDATE "Sua tabela que contem o COUNT" SET COUNT = COUNT + 1 END $$ DELIMITER ; Este trigger decrementa quando e eliminado um registo: DELIMITER $$ DROP TRIGGER IF EXISTS incrementa $$ CREATE TRIGGER incrementa BEFORE DELETE ON "Sua tabela que contem o COUNT" FOR EACH ROW BEGIN UPDATE "Sua tabela que contem o COUNT" SET COUNT = COUNT - 1 END $$ DELIMITER ; Mais informação: Clique aqui Compartilhar este post Link para o post Compartilhar em outros sites