我想在Snowflake数据库中列出使用序列的列。
INFORMATION_SCHEMA模式包含列和序列的视图,但是我看不到任何表/视图可以让我找出哪个列使用哪个序列。
通过INFORMATION_SCHEMA表是否可行?
或者还有另外一套我可以使用的雪花特定元数据吗?
答案 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';