在MySQL中创建从一个表到另一个表的触发器的脚本

Script to create trigger from one table to another in MySQL

提问人:neha tewari 提问时间:10/30/2023 最后编辑:SelVazineha tewari 更新时间:10/30/2023 访问量:34

问:

我有 2 个架构,其中第一个架构包含类似 TABLEA1 的表,第二个架构包含相同的表TABLEA2和 2 个额外的审核列。 我想创建一个脚本,该脚本从 information_Schema 和 schema1 读取所有表及其列,并在 schema2 上为每个表创建触发器。

CREATE TRIGGER AUDIT_UPDATE_old_table1 
AFTER UPDATE ON baseline 
FOR EACH ROW  
INSERT INTO Audit_tables.table1 (`AUDIT_STAMP`,`AUDIT_ACTION`,`id`, `created_at`, `created_by`, `created_by_login`, `updated_at`, `updated_by`, `updated_by_login`, `name`) 
VALUES (current_time, "K",id, old.created_at, old.created_by, old.created_by_login, old.updated_at, old.updated_by, old.updated_by_login, old.name);

应从information_schema读取表名和列名,因为此信息不能作为输入提供给脚本。

尝试创建过程

sql mysql 存储过程

评论

0赞 Akina 10/30/2023
你不能。这样的任务需要动态SQL(执行以编程方式构建的SQL代码)。但是在动态 SQL 中不允许使用 CREATE TRIGGER。
0赞 P.Salmon 10/30/2023
您可以编写代码来创建代码,运行它,然后复制并粘贴结果并运行它
0赞 neha tewari 10/30/2023
@p鲑鱼,你能提供一些例子吗?创建可以作为单独步骤执行的代码对于我的用例来说很好。发现与SQL Server类似的 stackoverflow.com/questions/52611154/...

答: 暂无答案