查找外键引用和填充值
在数据库模式中,通常存在通过外键引用其他表的表。要识别具有引用特定表和列的外键的表,以及这些外键包含数据的表,可以使用以下查询:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';
此查询从 KEY_COLUMN_USAGE 表中检索信息information_schema 数据库,包含有关外键关系的元数据。通过过滤指定的 REFERENCED_TABLE_NAME (X) 和 REFERENCED_COLUMN_NAME (X_id) 上的结果,查询会列出所有具有指向 X 表的 X_id 列的外键的表。
此外,要确保只有填充了外键的表包含键,查询可以扩展为包含外键中非空值的检查列:
SELECT t.TABLE_NAME, kcu.* FROM information_schema.KEY_COLUMN_USAGE kcu JOIN information_schema.TABLES t ON t.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND t.TABLE_NAME = kcu.TABLE_NAME WHERE kcu.REFERENCED_TABLE_NAME = 'X' AND kcu.REFERENCED_COLUMN_NAME = 'X_id' ORDER BY t.TABLE_NAME;
此更新的查询检索表名称以及外键元数据,确保结果中仅包含已填充外键的表。通过按表名称对结果进行排序,输出可以清晰地显示哪些表具有对指定表和列的外键引用,以及哪些表包含外键字段中的数据。
以上是如何在数据库中查找外键引用及其填充值?的详细内容。更多信息请关注PHP中文网其他相关文章!