表A有一个外键约束(类型)指向表B的id。然而,类型不是null,而id可以为空。
我正在试图使用information_schema构建一个查询,该查询将查看外键约束并匹配列类型和可空列以查看它们是否同步,但是我的逻辑存在问题。
select kcu.table_name, kcu.column_name, c.column_type, c.is_nullable,kcu.referenced_table_name, kcu.referenced_column_name,c.column_type, c.is_nullable
from key_column_usage kcu
inner join columns c on c.table_schema=kcu.table_schema and c.column_name=kcu.column_name and c.table_name=kcu.table_name
where kcu.referenced_table_name='Table_B' and kcu.table_name='Table_A';
我知道这个语法是不正确的 - 这是目前为止我能够组合起来的所有内容。我希望它能够在数据库中的每个表格上执行,并按表名和列名排序。它可以排除列类型和可为空字段相同的列。
refcol.column_type <> childcol.column_type
- 我认为这是不可能的。 - Paul Spiegel