patternsqlMinor
DDL Trigger in MySQL?
Viewed 0 times
mysqltriggerddl
Problem
Are there any options for running DDL triggers in a MySQL database. I would like to create a view every time someone create a table.
If the "Users" table is created, I want the DDL trigger to create a view called "v_Users".
If the "Users" table is created, I want the DDL trigger to create a view called "v_Users".
Solution
MySQL only supports triggers for
An alternative solution might be to create a MySQL
Maybe another option would be to create the view "if not exists" whenever a row of data is
Edit: Maybe yet another option could be that you only allow
BEFORE / AFTER INSERT, UPDATE, DELETE, see documentation for the CREATE TRIGGER syntax.An alternative solution might be to create a MySQL
EVENT that runs at at a specified interval and checks whether there are any tables that don't have corresponding views, and if so, create them. (Make sure to enable the event scheduler. The default is OFF until MySQL 8.0. See documentation here.)Maybe another option would be to create the view "if not exists" whenever a row of data is
INSERTed into the table, in which case you could use a BEFORE INSERT trigger. (One obvious disadvantage of this approach is that the trigger will be fired every time you INSERT to the table, so there is a performance penalty on INSERT.) Edit: Maybe yet another option could be that you only allow
CREATE TABLE through a special stored procedure which will automatically also create the view.Context
StackExchange Database Administrators Q#210007, answer score: 2
Revisions (0)
No revisions yet.