Mudar a captura de dados no MySQL

na minha base de dados, quero seguir o valor de uma coluna sempre que esta for alterada .de uma forma que cada vez que o valor de um campo muda, possamos saber qual era o valor anterior .seria fantástico atribuir datas a cada alteração.Estou a usar o MySQL como servidor de base de dados.

 1
Author: Your Common Sense, 2010-12-09

5 answers

Para fazer isso você precisa criar um gatilho, que é um evento que é disparado quando um {[[0]} ocorre em uma dada tabela.

Veja a documentação paracriar TRIGGER .

Para o que você quer fazer, você provavelmente precisa ter uma tabela auxiliar que tenha uma linha inserida para cada INSERT/UPDATE na tabela principal, AFTER isso acontece contendo o ID da linha alterado, o valor antigo o novo valor e uma data.

 4
Author: Orbling, 2010-12-09 02:47:53
Eis o que eu sugeriria. Pode ser um pouco de trabalho, mas se você fizer isso eu realmente acho que você terá uma maneira sólida de fazer a captura de dados de mudança no MySQL. Tenha em mente que fazer rastreamento de mudanças em um banco de dados é realmente uma coisa muito difícil de fazer você mesmo quando você leva em conta questões como bloqueio e níveis de isolamento. Recomendo vivamente a utilização de um processo como este. Veja um produto chamado MobiLink de qualquer lugar. Você pode obter uma versão de desenvolvimento livre de lá para cá. O objetivo do MobiLink é permitir que você sincronize as alterações de dados de bancos de dados como MySQL para um banco de dados SQL em qualquer lugar. Claro, a única parte que você está interessado é a capacidade de obter mudanças do MySQL. Felizmente, o que MobiLink vai fazer é muito efetivamente criar esses gatilhos de captura de dados de mudança em seu banco de dados MySQL. Na verdade, ele vai até dar - lhe os scripts sql que ele usou para fazer isso no caso de você precisar fazer isso novamente. Depois disso você pode desinstalar SQL Lugar.

Para começar, depois de o instalar, haverá um produto chamado Sybase Central que terá de abrir. Quando isto abrir, haverá um assistente que irá guiá-lo através da configuração do MobiLink contra a sua base de dados MySQL. Eu acho que há uma passagem na ajuda que é instalado se você ficar preso, mas eu não tenho acesso a ele agora para verificar.

Depois de ter executado o assistente, ele terá configurado a sua base de dados MySQL para Alteração captura de dados. Se você olhar para o seu banco de dados, Você também terá todos os gatilhos e mudar as colunas de rastreamento que você alguma vez precisaria.

Espero que isso ajude....
 0
Author: Voclare, 2011-04-23 02:28:15

Gatilhos nem sempre são a melhor maneira de gravar eventos de mudança na base de dados. Como gatilhos podem ser invalidados uma vez que o esquema da tabela muda, e que por sua vez causaria a operação da tabela real para falhar.

Para o mysql, é necessário capturar os eventos de alteração do ficheiro de Registo binário. O Mysql fornece a API para ler o registo binário ( versão post 5.6).

Você também pode querer ver Flexviews , que fornece à Oracle registos de visualização materializados para registar a alteração evento.

 0
Author: Lalit Kumar Bhasin, 2014-04-01 13:03:13

Criei uma ferramenta chamada cdc_audit que automatiza a criação de tabelas de auditoria no mysql para qualquer ou todas as tabelas, e até preserva gatilhos pré-existentes. Eu escrevi-o com a captura de dados de mudança (para aplicações de data warehouse ETL) em mente. Talvez tu ou alguém o achem útil.

Eu também blogei sobre isso .

Características

  • automatiza a elaboração de quadros de auditoria
  • automatiza a geração de gatilhos para preencher a auditoria quadros
  • automatiza a sincronização de novas linhas nas tabelas de auditoria para .ficheiros csv.
  • lê mysql information_schema para determinar automaticamente tabelas e Colunas.
  • pode gerar tabelas + gatilhos para todas as tabelas de bases de dados, ou uma lista especificada.
  • pode sincronizar as tabelas de auditoria para todas as tabelas de bases de dados, ou uma lista especificada.
  • mantém a lógica de activação pré-existente, se existir, ao gerar depois de accionadores.
  • sincronizar a opção do programa para apagar toda a última linha de auditoria, para mantenha a base de dados pequena.
 0
Author: danda, 2015-12-05 11:11:21

Eu recomendo que você dê uma olhada em Debezium uma plataforma CDC de código aberto que, entre outros, também suporta MySQL.

Você pode usar o Debezium para transmitir as alterações para o Apache Kafka, mas através do seu modo incorporado Você também pode usar os conectores de Debezium como uma biblioteca nas suas aplicações Java e propagar facilmente as alterações de dados para outras APIs streaming, como a Kinesis, etc.

Eu sou o líder do projecto Debezium.
 0
Author: Gunnar, 2018-07-24 21:15:55