来自 phpPgAdmin 的 Postgresql 插入查询语法错误

Posted

技术标签:

【中文标题】来自 phpPgAdmin 的 Postgresql 插入查询语法错误【英文标题】:Postgres sql insert query syntax error from phpPgAdmin 【发布时间】:2013-08-21 22:34:46 【问题描述】:

尝试执行标准插入查询,但不起作用。

INSERT INTO users (vk_id, eu_name, eu_society, eu_notes, eu_want_team)
VALUES ("123123133","Eu name","Eu society","Eu notes","true")

我得到的错误如下:

ERROR:  syntax error at or near "INTO" LINE 1: SELECT COUNT(*) AS
 total FROM (INSERT INTO users (vk_id, eu_...

是什么导致了这个错误?

【问题讨论】:

错误消息向您显示错误:SELECT COUNT(*) AS total FROM (INSERT ... postgresql 中的所有双引号都可以吗?我正在查看的文档仅显示单引号。它是否需要一个终止分号? 顺便说一句:值内的字符串需要用单引号括起来:VALUES(123123133,'Eu name','Eu society','Eu notes',true) 嗯,这可能是 phpPgAdmin 中的一个错误,我看到 5 月份打开的报告:Bugs item #3612602, was opened at 2013-05-03 INSERT INTO PostgreSQL的可能重复 【参考方案1】:

我已经安装了 phpPgAdmin 来尝试重现您的错误。我在尝试创建测试表时立即得到它:

看起来 phpPgAdmin 将您的查询包装到 select count(*) as total from (...) 中。我发现只有在查询页面上的 checkbox "Paginate results" 设置为 on 时才会发生这种情况(显然 phpPgAdmin 试图计算它将获得多少行,然后逐页显示)。取消选中它,您的查询将正常工作:

更新 1

类似问题 - INSERT INTO PostgreSQL

更新 2

正如@akshay 在 cmets 中提到的,您也可能会通过命令行运行查询时遇到类似的错误,请参阅解释的情况并在此处回答 - PostgreSQL disable more output

【讨论】:

@Roman Pekar 我遇到了类似的错误,但我没有使用 pgadmin UI。我正在通过命令行运行命令。我该如何纠正错误? 我在这里找到了答案:***.com/questions/11180179/… 我有空白 SQL 错误:在语句中:没有复选框“分页结果”【参考方案2】:

phpPgAdmin UI 提供了两个运行 SQL 的链接——一个在页面主体,一个在页面顶部的菜单栏中。

如果您运行像 CREATE TABLE 这样的数据定义语句,页面主体中的那个会抛出您看到的错误。

但是,菜单栏中的那个将毫无问题地运行数据定义查询。

简而言之:

screen

【讨论】:

【参考方案3】:

你也可以试试

INSERT INTO "user" ("username", "password_hash", "first_name", "last_name") VALUES( 'Foo',MD5('54321'),'Foo','Bar' );

【讨论】:

以上是关于来自 phpPgAdmin 的 Postgresql 插入查询语法错误的主要内容,如果未能解决你的问题,请参考以下文章

创建视图时出现 PhpPgAdmin 语法错误

ubuntu下安装PostgreSQL 和 phpPgAdmin

使用phppgadmin 遇到的小问题

在 phppgadmin 中创建数据库时出错

Postgres:除 phpPgAdmin 之外的所有权限都被拒绝

可以在 phpPgAdmin 中查看表,但不能在 psql(或任何其他方法)中查看表