我正在使用 Apache derby 数据库 v 10.9.1.0。现有一个表Country -具有类型为 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”指定的类型无效。列的类型不能更改。
非常感谢与正确更改查询相关的任何帮助,谢谢