MySQL / Percona 5.6:在表格更改后插入表格

时间:2014-03-07 15:32:48

标签: mysql sql database percona

我最近安装了一台带有Percona Server 5.6而不是MySQL 5.6的新计算机,并且主要使用InnoDB / XtraDB,FWIW。我正在研究的数据库仅仅是一个测试场,但我有一个问题:在我向表中添加一列(甚至删除一个)之后,我通常会忘记INSERT或以其他方式更改另一个表的数据,这会跟踪哪个列名在哪个表中;每个表都有ASCII名称和一个数字,为​​了简单起见,这个数字是表名之间的唯一区别。 那么,有没有办法自动更新“关系”表,以便添加或更改列名和表的编号,而不是使用cronjob?

现在我想,我可以删除该表并使用information_schema代替......

编辑0: 不要让上述实现阻止你;在寻找可能的其他方式之前,知道这是否可行是一件好事。

1 个答案:

答案 0 :(得分:0)

是的,依赖'INFORMATION_SCHEMA.COLUMNS'可能是最好的。

不幸的是,mysql不支持DDL TRIGGER事件,因为这将是您正在寻找的。

触发器允许您在插入,更新或删除特定表中的行之前执行许多SQL和过程操作。但据我所知 - 如果我错了,我会被激怒 - 你不能在像ALTER和DROP TABLE这样的DDL语句上设置TRIGGER事件......

然而,仍然需要花时间了解触发器 - 它们通过消除对聚合值等事物的cronjobs和外部更新的需要而节省了大量时间。

https://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html