我正在尝试更改具有如下表格的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's DB2,它建议删除表达式,更改表的完整性,然后重新添加表达式。无论如何在Derby中这样做了吗?
谢谢,
安德鲁
答案 0 :(得分:0)
您可以使用所需的架构创建一个新表(但名称不同),然后使用INSERT INTO ... SELECT FROM ...将数据从旧表复制到新表(或卸载旧表)使用复制数据系统过程将表重新加载到新表中,然后使用RENAME TABLE将旧表重命名为备用名,并将新表重命名为所需名称。
并且,正如上面评论中指出的@a_horse_with_no_name,所有这些步骤都记录在Apache网站上的Derby文档中。