Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете тригери за добавяне на промените в таблиците на регистрационния файл

Мога да ви предложа един вид алгоритъм, по който да работите, по-голямата част от основната работа вече е свършена:

Това може да бъде вашата таблица за одит, трябва да добавите колона с времеви клеймо като променена дата или повече информация според вашите изисквания:

CREATE TABLE audit (
     old_data VARCHAR(100),
     new_data VARCHAR(100),
     tbl_name VARCHAR(100)
)
|

Това може да се използва като референтен тригер; имайте предвид, че ще има отделен тригер за всяка таблица:

CREATE TRIGGER testtrigger BEFORE UPDATE ON <table_name>
  FOR EACH ROW BEGIN
    INSERT INTO audit(old_data, new_data, tbl_name) VALUES (OLD.first_name, NEW.first_name, "testtable");
  END;
|

Можете да имате няколко израза за вмъкване по един за всяка колона. Ако искате да поставите ограничение да не се вмъкват данните, които не са променени, можете да направите следната промяна в тригера:

IF(OLD.column_name <> NEW.column_name) THEN
    --Your insert query here
ELSE
    --NOOP
END IF;

Уведомете, ако е необходима повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Кой хеш алго трябва да използвам за това?

  2. MySQL Съхранена процедура срещу сложна заявка

  3. Излагане на име на таблица и имена на полета в URL адреса на заявката

  4. какво означава неудостоверен потребител в MYSQL?

  5. mysql PDO и динамично SQL инжектиране на съхранена процедура