如何判断雪花中哪些列使用序列作为默认值?

How can I tell which columns use a sequence for default value in snowflake?

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

INFORMATION_SCHEMA 架构包含列和序列的视图,但我没有看到任何 table/view 可以让我找出哪个列使用哪个序列。

是否可以通过INFORMATION_SCHEMA table?

或者我可以使用另一组 Snowflake 特定元数据吗?

我认为 Snowflake 中没有现有视图可以完成您的请求。那将是一个功能请求。

使用 cycles/loops 通过 databases/tables 的脚本并记录您正在寻找的输出可能是一种解决方法。例如,SHOW COLUMNS IN TABLE 命令将显示 'autoincrement' 列,该列将包含用于填充该列的序列。

其实,我错了...

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

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

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';