有没有办法使用information_schema来识别外键关系?我有一个数据完整性测试方法,使用约束视图结合列视图来动态构建 Pk 和 Uk 测试查询。
我遇到的问题是我找不到可用于构建 Fk 测试查询的 information_schema 视图。我在一篇 10 年前的帖子中发现了对 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 和 CONSTRAINT_COLUMN_USAGE 的引用。然而,我今天看不到这些观点。我必须使用 get_ddl() 函数,当角色没有序列权限时,该函数会导致问题。当使用 information_schema 视图构建查询时,这不是问题。
查找外键约束的列名的最佳方法是运行:
显示导入的密钥;
这是在上下文中运行的,但也可以与 {IN (ACCOUNT | DATABASE | SCHEMA) } 限定符一起使用。
Snow-Flake中没有关键列用法表:
方法如下:
方法 1:(SQL 函数)
在雪花中,首先您验证表是否确实有一些主键和外键,然后开始编写一些查询来处理该表。
如果您之前没有验证过:
查询:
SHOW IMPORTED KEYS IN DB_NAME.SCHEMA_NAME.TABLE_NAME ;
SHOW PRIMARY KEYS IN DB_NAME.SCHEMA_NAME.TABLE_NAME;
上述查询可能会返回一些空结果,因为可能存在没有主键和外键的表,并且这必须是返回结果为空的唯一结果
方法2:(解析DDL语句)
这是代码:
基本上代码中的方法是:
SELECT GET_DDL('TABLE', 'SCHEMA_DETAILS.'TABLE_NAME'')