我正在使用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'类型的值。
b。第二种方式
ALTER TABLE Country ALTER LawID SET DATA TYPE VARCHAR(50);
它显示错误消息,如:为列“LawID”指定了无效的类型。列的类型不能更改。
与正确的更改查询有关的任何帮助都将受到高度赞赏,谢谢
最佳答案
我认为第一种方法可以解决此更改:
UPDATE Country SET LawID_NEW = TRIM(CHAR(LawID));
关于sql - 在Apache derby中将现有列的数据类型从bigint更改为varchar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18929734/