在Apache derby中将现有列的数据类型从bigint更改为varchar

时间:2013-09-21 06:38:50

标签: sql derby

我正在使用Apache derby数据库v 10.9.1.0。现有表格国家/地区 - 具有bigint类型的 LawID 。它包含仅包含整数数据的记录。由于某些商业原因,我需要将其数据类型从“ bigint ”更改为“ varchar ”。我尝试了两种方法来改变现有的表。但两种方式都不起作用。

一个。第一种方式

    ALTER TABLE Country ADD COLUMN LawID_NEW VARCHAR(50);
    UPDATE Country SET LawID_NEW  = LawID;
    ALTER TABLE Country DROP COLUMN LawID;
    RENAME COLUMN Country.LawID_NEW TO LawID;

它显示如下消息:'VARCHAR'类型的列不能保存'BIGINT'类型的值。

湾第二种方式

ALTER TABLE Country ALTER LawID SET DATA TYPE VARCHAR(50);

它显示错误消息:为“LawID”列指定的类型无效。列的类型可能不会更改。

非常感谢任何与正确更改查询相关的帮助,谢谢

1 个答案:

答案 0 :(得分:2)

我认为第一种方法适用于此更改:

UPDATE Country SET LawID_NEW = TRIM(CHAR(LawID));