首页 > 解决方案 > 当我尝试在 PostgreSQL 中继承表时,如何解决错误?

问题描述

我尝试在 PostgreSQL 中继承一个表。但是,我收到一个我无法解决的错误。我想继承表“Ronde”作为表“Spel”的子级。

错误信息是:

ERROR: syntax error at or near "%"
LINE 2: INHERIT public.%22Spel%22;
^

之后,我尝试使用以下描述解决问题:

https://www.postgresql.org/docs/10/tutorial-inheritance.html

所以我尝试使用 sql 解决问题,但我得到了同样的错误。

现在“Spel”的sql是这样的:

CREATE TABLE public."Spel" (

    "Id" integer NOT NULL DEFAULT nextval('"Spel_Id_seq"'::regclass),
    "AantalSpelers" integer,
    "Speler1Id" integer,
    "Speler2Id" integer,
    "Taal" text COLLATE pg_catalog."default",
    "AantalLetters" integer,
    CONSTRAINT "Spel_pkey" PRIMARY KEY ("Id")
)

TABLESPACE pg_default;

ALTER TABLE public."Spel"
    OWNER to postgres;

CREATE TABLE public."Ronde" (

    "Id" serial,
    "Rondenummer" integer,
    "Woord" text,

) INHERITS (public."Spel");

错误信息

ERROR:  syntax error at or near ")"
LINE 21: ) INHERITS (public."Spel");
           ^
SQL state: 42601
Character: 462

这是错误

标签: postgresql

解决方案


第一个错误可能是 PgAdmin4 中的错误。引号以 URI 转义形式传输。或者也许它不是一个错误,而你以某种方式误用了它。

CREATE TABLE第二个错误是因为在语句中最后一列的定义后面有一个逗号。SQL 不是 Perl 或 Python,您不能只添加无关的尾随逗号并忽略它们。


推荐阅读