表A具有表B(id)的外键约束(类型)。但是,type不为null,id可以为空。
我尝试使用information_schema构建查询,该查询将查看外键约束并匹配列类型和可空列以查看它们是否同步,但是我遇到逻辑问题。< / p>
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';
我知道这种语法不正确 - 这只是我到目前为止能够整理的所有内容。我希望能够为数据库中的每个表执行此操作,并按table_name,然后是column_name对其进行排序。它可以排除column_type和is_nullable字段相同的列。
答案 0 :(得分:5)
外部约束的一侧可能存在NULLABLE列的合理原因,但这将比较所涉及列的类型/可空属性。
NotFoundError (see above for traceback): Key InceptionV3/Conv2d_4a_3x3/BatchNorm/beta/RMSProp not found in checkpoint
[[Node: save_1/RestoreV2_49 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_1/Const_0, save_1/RestoreV2_49/tensor_names, save_1/RestoreV2_49/shape_and_slices)]]
[[Node: save_1/Assign_774/_1550 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_2911_save_1/Assign_774", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"]()]]