在现有表格中为雪花中的默认时间戳添加新列

时间:2020-02-05 20:15:33

标签: timestamp default snowflake-cloud-data-platform

我正在尝试在现有表中添加包含默认 时间的新列,但不允许使用任何当前时间戳或'2019-11-14 00:00:00.000这次的格式为雪花

2 个答案:

答案 0 :(得分:4)

创建表后,可以添加的唯一列默认类型是default sequence.,所有其他列默认值是not supported

一种解决方法是:

  1. 创建新表格格式
  2. 将旧表的数据插入新表中
  3. 同步后,暂停写入旧表
  4. 运行swap with命令,用旧的替换新的

答案 1 :(得分:1)

虽然在这种情况下您不能更改默认值,但是可以创建一个具有所需默认值的列的新表。

例如,使用相同的结构创建一个tmp_table,并为created_date列使用以下代码:

CREATED_DATE TIMESTAMP_NTZ(9) DEFAULT CAST(CURRENT_TIMESTAMP() AS TIMESTAMP_NTZ(9)),

...完成以下操作的创建表语句:

... as select * from orig_table;

授予适当的权限,然后:

alter table orig_table swap with tmp_table;