Ir para conteúdo
Fórum Script Brasil

Rodrigo83

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre Rodrigo83

Rodrigo83's Achievements

0

Reputação

  1. Olá Denis; Não funcionou da maneira que queria. Vou tentar explicar como a trigger funciona no sqlServer para que eu possa me explicar melhor. Ao alterar um campo na tabela a trigger é disparada deletando um campo de outra tabela, é aí que o BINARY_CHECKSUM do sqlServer entra em ação porque ele só vai deletar o campo se houver uma real alteração em algum campo, se por exemplo ocorrer o update sem alteração de campo nada sera feito. O jeito que arranjei no mySql é meio tosco e bem trabalhoso fica dessa forma. DELIMITER $$ CREATE TRIGGER Agendamento_AU AFTER UPDATE ON Agendamento FOR EACH ROW BEGIN if !( old.campoTavela <=> new.campoTavela ) then delete from AgendamentoImportadoMobile where Agendamento_IDAgendamento = new.IDAgendamento; end if; END $$ DELIMITER ; Esse código acima funciona da maneira que eu quero mais eu tenho que passar campo a campo das tabelas o que é algo bem trabalhoso e pode gerar falhas no sqlServer ele fica da seguinte forma: ALTER TRIGGER [dbo].[Agendamento_AU] ON [dbo].[Agendamento] AFTER UPDATE AS BEGIN SET NOCOUNT ON; delete AgendamentoImportadoMobile from AgendamentoImportadoMobile AI where (select BINARY_CHECKSUM(*) from deleted d where d.IDAgendamento = AI.Agendamento_IDAgendamento) != (select BINARY_CHECKSUM(*) from inserted i where i.IDAgendamento = AI.Agendamento_IDAgendamento) END Só com essas linhas eu consigo varrer todas a colunas da tabela
  2. Olá Paulo; Não há código de erro porque não sei como usar uma função que uso no SqlServer por tanto ainda não implementei.
  3. Boa tarde; Estou fazendo uma migração de banco de dados de sqlServer para Mysql, estão surgindo varias duvidas de como fazer determinadas funções que faziamos no sqlServer para fazer no Mysql. Ao criar uma TRIGGER no sqlServer existe uma função chamada BINARY_CHECKSUM que comparar os campos que realmente tiveram alterações assim podendo fazer a ação somente no que foi alterado de fato. Existe algo parecido no mysql ? Se sim como fazer ? Obg.
×
×
  • Criar Novo...