【问题标题】:ERROR: relation "student_id_seq" does not exist SQL state: 42P01错误:关系“student_id_seq”不存在 SQL 状态:42P01
【发布时间】:2019-03-12 06:48:36
【问题描述】:

我有以下 SQL 代码:

-- Table: public.student

-- DROP TABLE public.student;

CREATE TABLE public.student
(

   id integer NOT NULL DEFAULT nextval('student_id_seq'::regclass),
   country character varying(30) COLLATE pg_catalog."default" NOT NULL,
   email character varying(30) COLLATE pg_catalog."default" NOT NULL,
   first_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
   last_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
   section character varying(255) COLLATE pg_catalog."default" NOT NULL,
   sex character varying(255) COLLATE pg_catalog."default" NOT NULL,
   CONSTRAINT student_pkey PRIMARY KEY (id)
)
WITH (
  OIDS = FALSE
) 
TABLESPACE pg_default;

ALTER TABLE public.student
OWNER to postgres;

我的查询没有执行

错误:关系“student_id_seq”不存在 SQL 状态:42P01

【问题讨论】:

  • 您收到该错误是因为您没有创建序列。

标签: postgresql


【解决方案1】:

在您的查询id integer NOT NULL DEFAULT nextval('student_id_seq'::regclass) 中,这意味着您希望您的表获得序列student_id_seq 中的下一个值存储,作为id 列的默认值。

试试这个:

CREATE TABLE public.student (
id serial not null,
country character varying(30) COLLATE pg_catalog."default" NOT NULL,
email character varying(30) COLLATE pg_catalog."default" NOT NULL,
first_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
last_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
section character varying(255) COLLATE pg_catalog."default" NOT NULL,
sex character varying(255) COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT student_pkey PRIMARY KEY (id)
) WITH ( OIDS = FALSE ) TABLESPACE pg_default;

ALTER TABLE public.student OWNER to postgres;

通过将 SERIAL 伪类型分配给 id 列,PostgreSQL 将执行以下操作:

  • 创建一个序列对象并设置由 序列作为列的默认值。
  • 将序列的所有者分配给id列;因此,当删除 id 列或表时,序列对象将被删除

您可以获取更多信息here

【讨论】:

    【解决方案2】:

    您要么创建一个序列,要么创建一个序列类型的 id 列。

    【讨论】:

      【解决方案3】:

      在序列之前提供架构名称。示例:模式名称。已添加 这里

      id integer NOT NULL DEFAULT nextval('schema_name.student_id_seq'::regclass),
      

      【讨论】:

        猜你喜欢
        • 2019-06-10
        • 2011-02-13
        • 2014-12-25
        • 2019-11-17
        • 1970-01-01
        • 2020-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多