雪花检查表是否存在



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

相关内容

最新更新