情境再现:

使用postgresql,我们需要迁移表操作时,转储sql语句再重新导入就会报错,出现:

ERROR:  relation "config_id_seq" does not exist 

LINE 2:   "id" int8 NOT NULL DEFAULT nextval('config_id_seq'::regcla...

提示序列不存在问题。

问题处理:

1.先删除导出的数据库表中的自增属性

2.导入数据库表之后,需要创建序列。

注:一般序列名称由数据表名+主键字段+seq组成 (通常情况下主键字段即为自增字段),如下表名为config_id_seq,主键字段为 id

CREATE SEQUENCE config_id_seq
  START WITH 1
  INCREMENT BY 1
  NO MINVALUE
  NO MAXVALUE
  CACHE 1;

3.设置表字段(id)自增sql

alter table config alter column id set default nextval('config_id_seq ');

4.自增字段id默认值是1,如果需要设置自增之后的其实数值,例如11

select setval('config_id_seq', 11)

5.清空表格时要重置序列新数据才会从1开始自增

TRUNCATE TABLE cof_table_hot_analysis RESTART IDENTITY

 

更多推荐