ddl - Snowflake SQL 编译错误:无法将列从类型 TIMESTAMP_LTZ(9) 更改为 TIMESTAMP_NTZ(9)
问题描述
我有一个雪花数据库表,当前定义如下
CREATE TABLE lightsaber (
ID NUMBER(38,0) NOT NULL AUTOINCREMENT,
APPLIED_ON TIMESTAMP_LTZ(9) NOT NULL DEFAULT CURRENT_TIMESTAMP(),
CONSTRAINT PK_ID PRIMARY KEY (ID)
);
我想将列APPLIED_ON
从更改TIMESTAMP_LTZ(9)
为TIMESTAMP_NTZ(9)
。我已阅读https://docs.snowflake.com/en/sql-reference/sql/alter-table-column.html。从那里我收集到我应该执行
alter table lightsaber alter APPLIED_ON set data type TIMESTAMP_NTZ ;
但是它输出错误
SQL 编译错误:无法将 APPLIED_ON 列从类型 TIMESTAMP_LTZ(9) 更改为 TIMESTAMP_NTZ(9)
我尝试了其他一些变化,但没有成功。
解决方案
不幸的是,这不起作用,因为(根据文档)在 alter 中为列设置 TYPE 时,指定的类型(即类型)必须是 NUMBER 或文本数据类型(VARCHAR、STRING、TEXT 等)并且存在对如何使用它也有一些限制 - 雪花不会自动知道如何进行数据转换,因此更改数据类型的选项并不完整。
也许尝试添加具有所需数据类型的新列、复制数据和删除旧列的更复杂的路径?
推荐阅读
- streamlit - 在 Streamlit 中创建每秒更改的日期时间的动态文本
- powershell - 使用 get-CosmosDbDocument 循环 cosmos DB 容器以批量检索记录
- excel - 从excel工作表的另一列中排除一列中的值
- javascript - 将数据通过一个组件传递到另一个具有 Angular Material Table 的问题 - 未解决的变量
- javascript - 自动与 Flash 内容交互
- xpath - 比较 selenium xpath 值
- regex - DataWeave 2.0 匹配所有出现的正则表达式
- r - 摆脱默认的 ACF 绘图标题
- python - 尝试从 APi 中提取值
- javascript - 在反应中返回带有钩子的组件?