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

Има ли някакъв начин автоматично да се създаде тригер при създаване на нова таблица в MySQL?

Както посочих в другият ви въпрос , мисля, че тук е подходящ преглед на процеса и сигурността. Това е одитирана база данни, така че никой (особено доставчици на услуги трети страни) трябва да създават таблици във вашата база данни без ваше знание .

Проблемът, който имате, е, както и новата таблица, която се създава, ще трябва да създадете и друга таблица, за да съхранявате одитираните/променените записи, която ще има идентична структура като оригиналната таблица с евентуално час/дата и потребителска колона. Ако доставчик трета страна създава тази таблица, той няма да знае да създаде таблицата за одит, следователно дори и да можете да генерирате динамично своите задействания, те няма да работят.

Невъзможно е да създадете една таблица, която да съхранява всички записи за промени за всички други таблици във вашата база данни, тъй като структурата между таблиците неизбежно се различава.

Ето защо:направете всички заявки за промяна (например доставчиците искат да създадат TableX, те подават заявка за промяна (включително SQL скрипта), обясняваща причината за промяната) на себе си и/или на вашия екип.

Изпълнявате SQL върху тестово копие на вашата база данни и използвате същата структура, за да създадете друга таблица, която да съхранява модифицираните записи.

След това създавате и тествате необходимите тригери, генерирате нов SQL скрипт за създаване на двете таблици и вашите тригери и го изпълнявате във вашата база данни на живо. Давате разрешения на вашия доставчик да използва новата таблица и те си отиват.

Всички са доволни. Да, може да отнеме малко повече време и да, ще имате повече работа за вършене, но това е адски много по-малко работа, отколкото е необходимо, за да опитате да анализирате регистрационните файлове на заявки за повторно създаване на записи, които вече са променени/ изтрийте, или анализирайте двоичния дневник и поддържайте актуална информация с всяка промяна и променете кода си, когато форматът на регистрационния файл се промени и т.н. и т.н.




  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 сървър след инсталиране на XAMPP на Mac OS

  2. Как да сумирате низ, разделен със запетая в SQL?

  3. моята sql най-добра практика с php за броене на редове

  4. Разделяне на стойност от едно поле на две

  5. Как да търся редове, съдържащи подниз?