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

¿Hay alguna forma de crear automáticamente un activador en la creación de una nueva tabla en MySQL?

Como he señalado en su otra pregunta , Creo que aquí se necesita una revisión del proceso y de la seguridad. Es una base de datos auditada, por lo que nadie (especialmente proveedores de servicios de terceros) deberían estar creando tablas en su base de datos sin su conocimiento .

El problema que tiene es que, además de la nueva tabla que se está creando, también necesitará tener otra tabla creada para almacenar los registros auditados/modificados, que tendrá una estructura idéntica a la tabla original con posiblemente una hora/fecha. y columna de usuario. Si un proveedor externo está creando esta tabla, no sabrá cómo crear la tabla de auditoría, por lo tanto, incluso si pudiera generar sus disparadores dinámicamente, no funcionarían.

Es imposible crear una sola tabla que contenga todos los registros de cambios para todas las demás tablas en su base de datos porque la estructura entre tablas inevitablemente difiere.

Por lo tanto:realice todas las solicitudes de cambio (p. ej., los proveedores desean crear TableX, envían una solicitud de cambio (incluido el script SQL) explicando el motivo del cambio) a usted y/o a su equipo.

Ejecuta el SQL en una copia de prueba de su base de datos y usa la misma estructura para crear otra tabla para contener los registros modificados.

Luego crea y prueba los disparadores necesarios, genera un nuevo script SQL para crear las dos tablas y sus disparadores y ejecuta eso en su base de datos en vivo. Le das permisos a tu proveedor para usar la nueva tabla y listo.

Todos están felices. Sí, puede llevar un poco más de tiempo, y sí, tendrá más trabajo por hacer, pero eso es mucho menos trabajo del que se requiere para intentar analizar los registros de consultas para volver a crear registros que ya se han modificado/ eliminado, o analice el registro binario y manténgase actualizado con cada cambio, y modifique su código cuando cambie el formato del archivo de registro, etc., etc.