【问题标题】:Trying to restore a backup with a generated SQL query results in syntax error尝试使用生成的 SQL 查询恢复备份会导致语法错误
【发布时间】:2019-07-12 14:35:55
【问题描述】:

我已经用 heidisql 做了一个数据库备份。当我尝试恢复备份时,出现语法错误。

heidiSQL 为我生成的查询:

CREATE TABLE IF NOT EXISTS "age_categories" (
    "id" INTEGER NOT NULL DEFAULT nextval('age_categories_id_seq'::regclass) COMMENT E'',
    "created_at" TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL COMMENT E'',
    "updated_at" TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL COMMENT E'',
    "min_age" INTEGER NOT NULL DEFAULT 0 COMMENT E'',
    "max_age" INTEGER NOT NULL DEFAULT 0 COMMENT E'',
    PRIMARY KEY ("id")
);

我运行查询时遇到的错误:

ERROR:  syntax error at or near "COMMENT"
LINE 3: ...EFAULT 
nextval('age_categories_id_seq'::regclass) COMMENT 
E'...                              ^

我不明白这里到底出了什么问题,有什么想法吗?

【问题讨论】:

    标签: postgresql heidisql


    【解决方案1】:

    无论 heidisql 是什么,它都会生成在 PostgreSQL 中不合法的 SQL。

    如果这应该适用于 PostgreSQL,您应该提交错误报告。

    【讨论】:

    • Heidisql 是heidisql.com。如果这个查询不是legel PostgreSQL,你能告诉我它的哪一部分使它非法吗?
    • 抱歉,我想这不是很清楚。我指的是我的问题中的查询:)
    • 我认为E'' 应该是每一列的评论?
    • 是的,我可以看到。但这不是有效的 SQL。 syntax of CREATE TABLE 中没有 COMMENT 子句。
    • 啊,你是对的,一旦我删除了COMMENT E'' 部分,查询几乎可以运行。 (age_categories_id_seq 似乎不存在)。我将向 heidisql 发送错误报告。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多