2

我正在使用 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”指定的类型无效。列的类型不能更改。

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

4

2 回答 2

2

我认为第一种方法适用于这种变化:

UPDATE Country SET LawID_NEW = TRIM(CHAR(LawID));
于 2013-09-21T09:20:36.260 回答
0
ALTER TABLE tablename MODIFY columnname VARCHAR(20);

这适用于mysql。试试看。

或者

ALTER TABLE table CHANGE columnname columnname VARCHAR(20); 
于 2021-09-03T06:28:34.913 回答