我在snowsql客户端创建表时遇到错误003540 (42501): SQL执行错误:不允许在共享数据库SNOWFLAKE_SAMPLE_DATA上创建表。有人能帮我解决这个错误吗?
Snowflake会话具有"上下文",例如当前角色、仓库、数据库和模式。
显示当前会话"上下文"将您的数据库设置为示例数据库之一,它是从"共享"中创建的。
从共享创建的数据库是只读的,因此不能在其中创建表。
好消息是修复很容易,您可以:
-
使用一个完全限定的表名(databasename . schemename . tablename)在一个你可以正确访问的数据库/模式中创建你的表。
USE DATABASE snowflake_sample_data;
USE SCHEMA tpch_sf1;
CREATE TABLE myDatabase.mySchema.myNewTableName AS SELECT * FROM lineitem;
-
将会话上下文更改为您可以访问的数据库/模式,并使用您正在读取的表的完全限定表名。
USE DATABASE myDatabase;
USE SCHEMA mySchema;
CREATE TABLE myNewTableName AS SELECT * FROM snowflake_sample_data.tpch_sf1.lineitem;
相关文档链接:
https://docs.snowflake.com/en/sql-reference/sql/use.html
https://docs.snowflake.com/en/user-guide/data-sharing-intro.html how-does-secure-data-sharing-work
https://docs.snowflake.com/en/sql-reference/name-resolution.html
https://docs.snowflake.com/en/user-guide/sample-data-using.html querying-tables-and-views-in-the-sample-database