pgsql新增表加主键自增
时间: 2023-07-29 15:13:19 浏览: 79
要在PostgreSQL中创建一个新表并添加自增主键,可以按照以下步骤进行操作:
1. 创建新表并定义列的数据类型和约束。例如,使用CREATE TABLE语句创建一个名为"cloud_news"的新表,并定义各列的数据类型和约束。
2. 创建一个序列(sequence)用于生成自增的主键值。使用CREATE SEQUENCE语句创建一个名为"cloud_new_id_seq"的序列,并指定递增的步长、最小值、最大值等参数。
3. 将序列与表的主键列关联起来。使用ALTER TABLE语句,将序列作为默认值赋给表的主键列。例如,使用ALTER TABLE语句将"cloud_new_id_seq"序列作为默认值赋给"ID"列。
4. 将数据从备份表复制到新表。使用INSERT INTO SELECT语句,将备份表中的数据复制到新表中。例如,使用INSERT INTO SELECT语句将"cloud_news_bak_20221214_1"表中的数据复制到"cloud_news"表中。
综合以上步骤,可以使用以下SQL语句实现在PostgreSQL中新增表并加入自增主键:
```
-- 创建新表
CREATE TABLE xiang_base.cloud_news (
ID serial PRIMARY KEY,
title varchar(255),
news_content text,
news_content_m text,
pic_path varchar(255),
intro text,
is_deleted boolean,
creator varchar(255),
updater varchar(255),
create_time timestamp,
update_time timestamp
);
-- 创建序列
CREATE SEQUENCE xiang_base.cloud_new_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-- 将序列与主键列关联
ALTER TABLE xiang_base.cloud_news
ALTER COLUMN ID SET DEFAULT nextval('xiang_base.cloud_new_id_seq');
-- 复制数据
INSERT INTO xiang_base.cloud_news (ID, title, news_content, news_content_m, pic_path, intro, is_deleted, creator, updater, create_time, update_time)
SELECT ID::int8, title, news_content, news_content_m, pic_path, intro, is_deleted, creator, updater, create_time, update_time
FROM xiang_base.cloud_news_bak_20221214_1;
```
这样,你就可以在PostgreSQL中创建一个新表,并为其添加自增主键了。
#### 引用[.reference_title]
- *1* *2* *3* [pgsql 自增主键使用](https://blog.csdn.net/weixin_38285470/article/details/128316839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]