PhpPgAdmin中的PostgreSQL SQL插入查询语法错误

18

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

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_...

这个错误是由什么引起的?


2
错误信息显示了错误:SELECT COUNT(*) AS total FROM (INSERT ... - ypercubeᵀᴹ
2
在PostgreSQL中,所有这些双引号都可以吗?我查看的文档只显示单引号。它需要一个终止分号吗? - Hart CO
2
顺便提一下:值内的字符串需要用单引号括起来:VALUES(123123133,'Eu name','Eu society','Eu notes',true) - wildplasser
2
这可能是phpPgAdmin中的一个错误,我看到在五月份有一个报告:Bugs item #3612602, was opened at 2013-05-03 - ypercubeᵀᴹ
1
可能是INSERT INTO PostgreSQL的重复问题。 - user330315
显示剩余6条评论
3个回答

45

我安装了phpPgAdmin来尝试重现您的错误。当我尝试创建一个测试表时,我立刻得到了它:

enter image description here

看起来phpPgAdmin将查询包装成了select count(*) as total from (...)。我发现只有在查询页面上的复选框“分页结果”被设置为开启时(显然phpPgAdmin试图计算它将获得多少行数据,然后逐页显示),才会出现这种情况。取消勾选它,你的查询就会正常工作:

enter image description here

更新1

类似的问题 - 插入到PostgreSQL中

更新2

如@akshay在评论中提到的,您也可以通过命令行运行查询来获得类似的错误,请参见此处解释的情况和答案 - 禁用PostgreSQL更多输出


@Roman Pekar 我遇到了类似的错误,但我没有使用 pgadmin UI。我是通过命令行运行命令的。我该如何纠正这个错误? - tryingToLearn
1
我在这里找到了答案:https://dev59.com/BGgu5IYBdhLWcg3wpYgj - tryingToLearn
我遇到了空白的SQL错误:在语句中没有复选框“分页结果”。 - rozochkin

2
phpPgAdmin UI提供了两个运行SQL的链接 - 一个在页面主体中,另一个在页面顶部的菜单栏中。
如果您运行CREATE TABLE之类的数据定义语句,则页面主体中的链接将抛出您看到的错误。
然而,在菜单栏中的链接可以毫无问题地运行数据定义查询。
简而言之: screen

0

你也可以尝试这个:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接