雪花创建表就像另一个表一样,但是将所有列设置为可为空

时间:2020-07-07 22:19:53

标签: snowflake-cloud-data-platform nullable create-table

正如主题行所说,我想基于excel中的表列表自动创建表,但是如果这些是以_ERR结尾的表,我想去除任何非null限制(旧的缺陷系统)。

有没有办法做到这一点?只是实际的陈述,其余的逻辑都涵盖了。

像这样的东西:

CREATE TABLE … LIKE ... SET NULLABLE

会很好。

谢谢!

3 个答案:

答案 0 :(得分:1)

这不是您可以使用Snowflake的SQL变量本地完成的操作。您需要自己编写脚本。

答案 1 :(得分:1)

创建[或替换]表

然后使用alter删除NULL。

ALTER TABLE t1 ALTER COLUMN c1 DROP NOT NULL;

答案 2 :(得分:0)

您可以通过awk创建语句

awk  'FS="_" { if($NF=="ERR") print "create table like",$0 , "as nullable;"; else print "create table like",$0} ' 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

我猜文件中包含以下表名。

cat file
table_1
table_2
table_3_ERR
table_4