2024年4月28日发(作者:)

informationschema 表结构变更记录表

`information_schema` 是 MySQL 数据库中的一个虚拟

数据库,它包含了关于其他数据库的元数据信息。如果你想

追踪表结构的变更,例如添加、删除或修改列,你可以使用

`information_schema` 中的相关表。

以下是一些可能对你有用的 `information_schema` 表:

1. TABLES

`TABLES` 表存储了数据库中所有表的信息。你可以查

询这个表来查看某个特定表的创建语句,从而了解其结构。

2. COLUMNS

`COLUMNS` 表提供了关于表中所有列的信息。你可以

通过比较不同时间点的 `COLUMNS` 表数据来追踪列的添

加、删除或修改。

3. STATISTICS

`STATISTICS` 表提供了关于表索引的信息。如果你更改

了表的索引结构,这个表也会提供相应的信息。

4. KEY_COLUMN_USAGE

`KEY_COLUMN_USAGE` 表存储了关于外键约束的列信

息。通过这个表,你可以了解哪些列被用作外键约束。

5. TABLE_CONSTRAINTS

`TABLE_CONSTRAINTS` 表提供了关于表约束(如主键、

外键、唯一约束等)的信息。

6. TRIGGERS (如果存在触发器)

`TRIGGERS` 表存储了关于触发器的信息。如果某些表

结构变更是由触发器触发的,这个表可以提供更多上下文信

息。

要追踪表结构的变更,你可能需要定期查询这些表,并

将结果保存到另一个地方(例如另一个数据库或日志文件

中),以便进行比较。你也可以考虑使用专门的数据库审计

工具或插件来帮助追踪这些变更。

注意:在某些情况下,如果你对表进行了“在线”更改

(例如使用 `ALTER TABLE` 语句时允许在线DDL),那么可

能不会立即反映在 `information_schema` 中,因为这些更改

是逐步应用的。在这种情况下,你可能需要查看数据库的二

进制日志(如果已启用)来获取更详细的信息。