2012-04-25 83 views
2

在我的php脚本中,我想检查一下数据库表的结构是否已经改变。 DESCRIBE TABLE不会提供足够的信息,因为它忽略了外键。 SHOW CREATE TABLE太多了,因为自动增量值也出现在这里。如何检测数据库结构是否更改? (不是内容!)

+2

看看'information_schema。*'表格。我认为它的一些数据组合可能会工作得很好(可能是列,table_constraints和触发器)。 – Wrikken 2012-04-25 14:36:20

回答

5

SHOW CREATE TABLE过多,因为自动增量值 也出现在这里。

只需使用正则表达式过滤出自动增量值即可。

preg_replace('/ AUTO_INCREMENT=[0-9]+ /', ' ', $sql); 
+0

如果您可以包含该正则表达式函数,请 – 2012-04-25 14:31:12

+1

更新了答案。 – 2012-04-25 14:35:09

+1

不错。 (小缺点是,如果索引或外键已被删除并以不同的名称重新创建,它将显示错误否定) – 2012-04-25 14:44:15