是否可以在information_schema中的任何表上应用触发器?
答案 0 :(得分:1)
据我了解,information_schema中的表实际上是视图。这是here。
根据MySQL,您无法在临时表或视图上创建触发器。有关此问题的讨论,请参阅this page。
所以,我会根据这些信息说不。如果我错了,我相信有人会纠正我。
有一个类似于你问here的讨论。
你想要完成什么?
答案 1 :(得分:0)
有人更聪明 - 开个玩笑,但我一直在尝试做同样的事情,唯一明显的答案就是添加一个抽象层,不幸的是。
简单地说,您需要使用另一种语言调用更高级别的函数(由您自己编写),而不仅仅是SQL(“ALTER TABLE ....”),如下所示:
- >
modifytable( $old_table_structure,$new_table_structure){
alter_table_base_table($old_table_structure,$new_table_structure);
alter_table_history_table($old_table_structure,$new_table_structure); //just guessing that's what I'm doing with it so thought it was the same for you
alter_history_triggers($old_table_structure,$new_table_structure);
}
我真的很想在DBMS中直接这样做,但看起来info_schema并不适用于此。
当然,你想要在一次交易中拥有所有这些,以确保它不会爆炸;)