sql >> Base de Datos >  >> RDS >> Mysql

Configuración de disparadores de MySQL

Los disparadores le permiten realizar una función en la base de datos cuando ocurren ciertos eventos (por ejemplo, una inserción en una tabla).

No puedo comentar sobre mysql específicamente.

Precaución:los disparadores pueden ser muy atractivos, cuando comienzas a usarlos por primera vez, parecen una varita mágica para todo tipo de problemas. Pero, hacen que sucedan cosas "mágicas", si no conoce la base de datos de adentro hacia afuera, puede parecer que suceden cosas realmente extrañas (como inserciones en otras tablas, cambio de datos de entrada, etc.). Antes de implementar cosas como disparadores, consideraría seriamente forzar el uso de una API alrededor del esquema (preferiblemente en la base de datos, pero afuera si no puede).

Algunas cosas para las que aún usaría activadores

  • Hacer un seguimiento de los campos "date_created" y "date_last_edited"
  • Insertar "ID" (en Oracle, donde no hay un campo de identificación automática)
  • Mantener el historial de cambios

Cosas para las que no querrías usar activadores

  • reglas de negocio/lógica
  • cualquier cosa que se conecte fuera de la base de datos (por ejemplo, una llamada de servicio web)
  • Control de acceso
  • Cualquier cosa que no sea transaccional (cualquier cosa que haga en el disparador DEBE poder revertirse con la transacción)