db2现有表新增一个自增主键
时间: 2024-09-18 21:03:57 浏览: 69
在DB2数据库中,如果你想要给现有的表新增一个自动递增的主键,你需要执行以下步骤:
1. **创建序列(Sequence)**:首先,如果还没有这样的序列,可以创建一个用于存储下一个主键值的序列。例如,你可以创建一个名为`your_table_seq`的序列,如下命令所示:
```sql
CREATE SEQUENCE your_table_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE;
```
这里`START WITH 1`指定了初始值,`INCREMENT BY 1`表示每次递增1,`NO MAXVALUE`表示没有最大值,序列会无限递增。
2. **设置表结构**:然后,在已有的表`your_table`中添加一个新的列作为主键,通常选择`INT`或`BIGINT`数据类型,并指定它为`IDENTITY`或`GENERATED BY DEFAULT AS IDENTITY`,如:
```sql
ALTER TABLE your_table ADD COLUMN id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
```
如果`id`已经是存在的字段并且需要修改为主键,可以先删除原主键再重建:
```sql
ALTER TABLE your_table DROP PRIMARY KEY, ALTER COLUMN id SET NOT NULL;
ALTER TABLE your_table ADD PRIMARY KEY (id);
```
3. **插入新行时获取新ID**:当你插入新记录时,数据库会自动从序列获取并设置新的主键值。
阅读全文