db2中在已有数据的表a中加自增id主键语句
时间: 2024-03-06 07:50:48 浏览: 189
如果你想在一个已经存在的表中添加自增 id 主键列,可以使用以下 SQL 语句:
```sql
ALTER TABLE a ADD COLUMN id INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY
```
上面的 SQL 语句会向表 a 中添加一个名为 id 的自增长列,并将其设置为主键。需要注意的是,该表中已经存在的数据在添加自增 id 主键列时会被重新排序,因此在表中已经存在的数据行的 id 值并不一定是连续的。
如果你想要在添加自增 id 主键列时保持表中已有数据行的 id 值连续,可以使用以下步骤:
1. 创建一个新的带有自增 id 主键列的表 b,并将表 a 中的数据插入到表 b 中。
2. 删除表 a。
3. 重命名表 b 为 a。
以下是一个示例 SQL 语句:
```sql
-- 创建一个新表 b,带有自增 id 主键列
CREATE TABLE b (
id INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY,
col1 VARCHAR(50),
col2 INTEGER
);
-- 将表 a 中的数据插入到表 b 中
INSERT INTO b (col1, col2)
SELECT col1, col2 FROM a;
-- 删除表 a
DROP TABLE a;
-- 重命名表 b 为 a
RENAME TABLE b TO a;
```
上述 SQL 语句将在表 a 中添加一个自增 id 主键列,并将其设置为主键。同时,表中已存在的数据行的 id 值将保持连续。
阅读全文