2

我正在尝试更改具有如下表的 Derby 数据库:

CREATE TABLE sec_merch_categories (
category_id int NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
packageName VARCHAR(100) NOT NULL,
name VARCHAR(100) NOT NULL,
primary key(category_id)
);

我想将category_id列更改为:

category_id int NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),

我看到的唯一文档是IBM 的 DB2,它建议删除表达式,更改表的完整性,然后重新添加表达式。无论如何在德比这样做?

谢谢,

安德鲁

4

1 回答 1

0

您可以使用所需的架构(但名称不同)创建一个新表,然后使用 INSERT INTO ... SELECT FROM ... 将数据从旧表复制到新表(或卸载旧表并重新加载使用复制数据系统过程将其放入新表中),然后使用 RENAME TABLE 将旧表重命名为备用名称,并将新表重命名为所需的名称。

并且,正如上述评论中指出的@a_horse_with_no_name,所有这些步骤都记录在 Apache 网站上的 Derby 文档中。

于 2012-12-15T15:18:39.540 回答