- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近安装了一台装有 Percona Server 5.6 而不是 MySQL 5.6 的新计算机,并且主要使用 InnoDB/XtraDB,FWIW。我正在处理的数据库只是一个试验场,但我有一个问题:在我向表中添加一列(甚至删除一列)后,我通常会忘记插入或以其他方式更改另一个表的数据,它会跟踪哪个表中有哪些列名;每个表都有 ASCII 名称和一个数字,为了简单起见,这个数字是表名之间的唯一区别。 那么,有没有一种方法可以自动更新“关系”表,以便添加或更改列名和表的编号,而不是使用 cronjob?
现在我认为,我可以删除该表并改用 information_schema ...
EDIT 0: 不要让上述认识阻止你;在采取其他可能的方式之前知道这是否可行是件好事。
最佳答案
是的,依靠“INFORMATION_SCHEMA.COLUMNS”可能是最好的。
不幸的是,mysql 不支持 DDL TRIGGER 事件,因为这正是您正在寻找的。
触发器允许您在插入、更新或删除特定表中的行之前执行许多 SQL 和过程操作。然而,据我所知——如果我错了我会很生气的——你不能在像 ALTER 和 DROP TABLE 这样的 DDL 语句上设置 TRIGGER 事件......
然而,仍然需要花时间了解触发器 - 它们通过消除对 cronjobs 和外部更新(如聚合值)的需要来节省大量时间。
关于MySQL/Percona 5.6 : INSERT INTO a table after a table is ALTERed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22254239/
我是一名优秀的程序员,十分优秀!