用于将现有列数据类型从 varchar 修改为具有相同长度的 char 的 Teradata Alter Table 命令

标签 teradata alter

在 Teradata 中,当执行 ALTER TABLE 命令将现有列的数据类型从 VARCHAR(10) 修改为 CHAR(10) 时,我收到 3558 错误,指示无法更改指定的属性。是否有替代方法对此进行编码以实现预期目标,或者是否需要删除并重新创建该列以更改数据类型?

最佳答案

当内部存储发生变化时,您无法修改数据类型,VARCHAR <-> CHAR 就是这种情况。

与其ADD CHAR -> UPDATE CHAR from VARCHAR(需要大量的 transient 日志)-> DROP VARCHAR,不如创建一个新表-> INSERT/SELECT(无TJ)-> 删除/重命名

编辑:正如 Rob Paller 所建议的,使用 MERGE INTO 而不是 INSERT SELECT 将避免假脱机处理源表。

关于用于将现有列数据类型从 varchar 修改为具有相同长度的 char 的 Teradata Alter Table 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242741/

相关文章:

mysql - 在 mysql 中,如果存在则在其他列之后添加该列

sql - 如何在 SQL Server 中使用单个 ALTER TABLE 语句删除多个列?

sql - Teradata 转换为 hive sql

python - R 包 teradatasql dbGetQuery 永远返回更大的数据,而 python 工作得非常快

sql - 棘手的逻辑-SQL、Teradata

sql - 如何在 SQL 查询中获取父值和最后替换的值

php - 使用 PHP 循环向 MySQL 表添加多列

mysql - 如何更改 mysql 表列的默认值?

Mysql存储过程改变多个表结构

teradata - 查看与易失表?