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

Настройка на MySQL тригери

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

Не мога да коментирам конкретно mysql.

Предпазна мярка:Тригерите могат да бъдат много примамливи, когато започнете да ги използвате, те изглеждат като вълшебен куршум за всякакви проблеми. Но те правят "магически" неща да се случват, ако не познавате базата данни отвътре, може да изглежда, че се случват наистина странни неща (като вмъквания в други таблици, промяна на входните данни и т.н.). Преди да внедря нещата като тригер, сериозно бих обмислил вместо това да наложа използването на API около схемата (за предпочитане в базата данни, но извън нея, ако не можете).

За някои неща все още бих използвал тригери

  • Проследяване на полетата „date_created“ и „date_last_edited“
  • Вмъкване на „ID“ (в Oracle, където няма поле за автоматичен идентификационен номер)
  • Запазване на историята на промените

Неща, за които не бихте искали да използвате тригери

  • бизнес правила/логика
  • всичко, което се свързва извън базата данни (напр. повикване на уеб услуга)
  • Контрол на достъпа
  • Всичко, което не е транзакционно (всичко, което правите в тригера ТРЯБВА да може да се върне обратно с транзакцията)


  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 име на таблица с concat

  2. Изпълнете скрипт/команда на Shell от MySQL Trigger/Stored Procedure

  3. PostgreSQL срещу MySQL, сравнение

  4. mysql jdbc драйвер не поддържа разделители в тригери с множество изрази

  5. Вложен избор с помощта на Zend Db