我正在使用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/

10-08 20:46