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;