将MySQL默认值语法转换为Snowflake时遇语法错误求助
MySQL转Snowflake:给列添加默认时间戳的正确语法
问题分析
报错原因是Snowflake中给已存在列添加默认值的语法与MySQL不同,且CURRENT_TIMESTAMP作为内置函数,设置默认值时不需要加括号。
正确写法
场景1:给已存在的DateAdded列添加默认值
如果Stg.claim表中已有DateAdded列,需用ALTER COLUMN语句设置默认值:
ALTER TABLE Stg.claim ALTER COLUMN DateAdded SET DEFAULT CURRENT_TIMESTAMP;
场景2:同时添加DateAdded列并设置默认值
若表中还没有DateAdded列,新增列时可直接附带默认值:
ALTER TABLE Stg.claim ADD COLUMN DateAdded TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
补充说明
- Snowflake的
CURRENT_TIMESTAMP返回当前会话的时间戳,与MySQL的getdate()功能一致 - 语法区分:修改现有列默认值用
ALTER COLUMN ... SET DEFAULT;新增列时直接在列定义后追加DEFAULT配置
内容的提问来源于stack exchange,提问作者user18572659
相关产品推荐
相关产品推荐

