我正在使用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”列指定的类型无效。列的类型可能不会更改。
非常感谢任何与正确更改查询相关的帮助,谢谢
答案 0 :(得分:2)
我认为第一种方法适用于此更改:
UPDATE Country SET LawID_NEW = TRIM(CHAR(LawID));