Snowflake 像另一个 table 一样创建 table 但将所有列设置为可为空
Snowflake create table like another table but set all columns to nullable
如主题行所述,我想根据 excel 中的表列表自动创建表,但如果这些表以 _ERR 结尾,我想去除任何非空限制(旧系统的缺陷)。
有办法吗?只是实际的陈述,其余的逻辑都被涵盖了。
所以像这样:
CREATE TABLE … LIKE ... SET NULLABLE
会很好。
谢谢!
这不是您可以使用 Snowflake 的 SQL 变体本机完成的事情。您需要自己编写脚本。
你可以通过 awk 创建你的语句
awk 'FS="_" { if($NF=="ERR") print "create table like",[=10=] , "as nullable;"; else print "create table like",[=10=]} ' file
o/p
create table like table_1
create table like table_2
create table like table_3_ERR as nullable;
create table like table_4
我猜文件中包含以下 table 个名称。
cat file
table_1
table_2
table_3_ERR
table_4
创建[或替换]TABLE喜欢
然后使用 alter 删除 NULL。
ALTER TABLE t1 ALTER COLUMN c1 DROP NOT NULL;
如主题行所述,我想根据 excel 中的表列表自动创建表,但如果这些表以 _ERR 结尾,我想去除任何非空限制(旧系统的缺陷)。
有办法吗?只是实际的陈述,其余的逻辑都被涵盖了。
所以像这样:
CREATE TABLE … LIKE ... SET NULLABLE
会很好。
谢谢!
这不是您可以使用 Snowflake 的 SQL 变体本机完成的事情。您需要自己编写脚本。
你可以通过 awk 创建你的语句
awk 'FS="_" { if($NF=="ERR") print "create table like",[=10=] , "as nullable;"; else print "create table like",[=10=]} ' file
o/p
create table like table_1
create table like table_2
create table like table_3_ERR as nullable;
create table like table_4
我猜文件中包含以下 table 个名称。
cat file
table_1
table_2
table_3_ERR
table_4
创建[或替换]TABLE
然后使用 alter 删除 NULL。
ALTER TABLE t1 ALTER COLUMN c1 DROP NOT NULL;