2015-03-02 55 views
1

我开发了一个正在生产的软件,现在由5个客户端使用&。 我正在使用Derby数据库。将主键列类型从Integer迁移到Derby中的BigInt

但是,现在,我意识到我应该设计一个表主键列与BigInt数据类型而不是Integer类型。

那么我怎么能安全地更改表,在这种情况下,当这张表也通过这个主键列与其他表的关系?

而且,如果我想将所有表主键列的类型从Integer更改为BigInt,那么对性能会有什么影响吗?

回答

0

试试这个:

ALTER TABLE MY_TABLE ADD COLUMN NEW_COLUMN BIGINT; 
UPDATE MY_TABLE SET NEW_COLUMN=MY_COLUMN; 
ALTER TABLE MY_TABLE DROP COLUMN MY_COLUMN; 
RENAME COLUMN MY_TABLE.NEW_COLUMN TO MY_COLUMN; 

讨论here