是否无法修改Derby中具有char类型的列的大小?

时间:2017-07-13 05:09:38

标签: database derby

我想在Derby中修改具有CHAR类型的列的大小。 - 列的现有大小= CHAR(2) - 我想要的尺寸= CHAR(3)

ALTER TABLE测试     ALTER LOG SET DATA TYPE CHAR(4)

但是,如果我尝试,"只有VARCHAR,CLOB或BLOB Type是可能的"印刷...

那么,在Derby中修改具有char类型的列的大小是不可能的吗?

1 个答案:

答案 0 :(得分:0)

您无法使用简单的1行ALTER TABLE ... ALTER COLUMN语句来更改CHAR数据类型;见https://db.apache.org/derby/docs/10.13/ref/rrefsqlj81859.html

但是,您可以使用更复杂的4步骤流程:

  1. ALTER TABLE ... ADD COLUMN ...添加新的CHAR(3)
  2. UPDATE ... SET ...从旧列的值中设置新列的值。
  3. ALTER TABLE ... DROP COLUMN ...删除CHAR(2)
  4. RENAME COLUMNCHAR(3)列重命名为与旧CHAR(2)列同名。
  5. 当然,在运行类似这样的命令之前,先备份数据库。