2013-09-21 46 views
1

我正在使用Apache derby数据库v 10.9.1.0。有一个现有表格国家-专栏类型bigint的LawID。它包含只有整数数据的记录。由于某些商业原因,我需要将其数据类型从'bigint'更改为'varchar'。我尝试了两种方法来改变现有的表格。但是这两种方式都行不通。将现有列的数据类型从bigint更改为Apache derby中的varchar

a。第一种方式

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”的值。

b。第二方式

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

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

纠正变更查询相关的任何帮助,高度赞赏,感谢

回答

2

我认为第一种方法将这种变化工作:

UPDATE Country SET LawID_NEW = TRIM(CHAR(LawID)); 
相关问题