我怎样才能知道雪花中哪些列使用序列作为默认值?

时间:2019-10-18 13:15:33

标签: snowflake-data-warehouse

我想在Snowflake数据库中列出使用序列的列。

INFORMATION_SCHEMA模式包含列和序列的视图,但是我看不到任何表/视图可以让我找出哪个列使用哪个序列。

通过INFORMATION_SCHEMA表是否可行?

或者还有另外一套我可以使用的雪花特定元数据吗?

2 个答案:

答案 0 :(得分:1)

我不认为Snowflake中存在可以满足您要求的视图。那将是一个功能请求。

使用脚本循环/循环遍历数据库/表并记录您要查找的输出,可能可以解决该问题。例如,SHOW COLUMNS IN TABLE命令将显示“ autoincrement”列,其中将包含用于填充该列的顺序。

答案 1 :(得分:0)

实际上,我错了...

INFORMATION_SCHEMA列。 COLUMNS.COLUMN_DEFAULT 包含对该序列的文本引用。

它不是单独的表,但可以完成工作。

USE DATABASE ZZ_ERIC;
CREATE SCHEMA JUNK;
CREATE SEQUENCE JUNK.TOTO_SEQ;
CREATE TABLE JUNK.TOTO_TBL(TOTO_FIELD INTEGER NOT NULL DEFAULT JUNK.TOTO_SEQ.NEXTVAL, TOTO_NAME VARCHAR(100));

SELECT * 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_SCHEMA = 'JUNK';

似乎可以正常工作。

我在COLUMN_DEFAULT中收到“ ZZ_ERIC.JUNK.TOTO_SEQ.NEXTVAL

所以我可以用类似这样的东西来回答我的第一个问题

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_DEFAULT LIKE '%.NEXTVAL';