我正在尝试修改一个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中有这样做的方式吗?
谢谢,
安德鲁
发布于 2012-12-15 23:18:40
您可以使用所需的模式(但名称不同)创建一个新表,然后使用INSERT INTO ...选择...要将数据从旧表复制到新表(或卸载旧表并使用复制数据系统过程将其重新加载到新表中),然后使用RENAME table将旧表重命名为备用名称,并将新表重命名为其所需的名称。
而且,正如@a_horse_with_no_name在上面的注释中指出的,所有这些步骤都记录在@a_horse_with_no_name网站上的Derby文档中。
https://stackoverflow.com/questions/13885204
复制相似问题