如何判断雪花中哪些列使用序列作为默认值?
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';
我想在我的 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';