Snowflake中是否有内置函数或过程可以返回布尔值来指示表是否存在?
像
cal IF_table_exist('table_name') or select iftableexist('table_name');
如果没有,那么我计划编写一个存储过程来解决这个问题。任何方向都会很有帮助。
提前感谢
函数的最小实现(您可以添加更多的错误处理等(
CREATE OR REPLACE FUNCTION TBL_EXIST(SCH VARCHAR, TBL VARCHAR)
RETURNS BOOLEAN
LANGUAGE SQL
AS
'select to_boolean(count(1)) from information_schema.tables where table_schema = sch and table_name = tbl';
函数EXISTS
可以在Snowflake中用于检查表是否存在
CREATE TABLE EXAMPLE_TABLE (
COL1 VARCHAR
);
EXECUTE IMMEDIATE
$$
BEGIN
IF (EXISTS(SELECT * FROM MY_DATABASE.INFORMATION_SCHEMA
WHERE TABLE_NAME = 'EXAMPLE_TABLE'
)
THEN RETURN 'EXISTS';
ELSE
RETURN 'NOT EXISTS'
END IF;
END
$$;
否,Snowflake中没有内置函数来检查表是否存在并返回布尔值。可以使用SHOW TABLES命令检查该表。
https://docs.snowflake.com/en/sql-reference/sql/show-tables.html
因此,您可以解析命令的输出以返回布尔值。
如果要检查是否存在DDL表,则最容易使用以下内容:
CREATE OR REPLACE Table_Name (
col1
col2
.
.
coln
);