Ошибка синтаксиса запроса вставки Postgres sql из phpPgAdmin

Пытаюсь выполнить стандартный запрос на вставку, но он не работает.

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

Что вызывает эту ошибку?


person Community    schedule 21.08.2013    source источник
comment
Сообщение об ошибке показывает вам ошибку: SELECT COUNT(*) AS total FROM (INSERT ...   -  person ypercubeᵀᴹ    schedule 22.08.2013
comment
У меня нет никаких подсказок .... У меня нет SELECT COUNT (*) AS total FROM, поэтому я не знаю, где это взято.   -  person    schedule 22.08.2013
comment
Все эти двойные кавычки в порядке в postgresql? Документация, на которую я смотрю, просто показывает одинарные кавычки. И нужна ли завершающая точка с запятой?   -  person Hart CO    schedule 22.08.2013
comment
Кстати: строки внутри значений должны быть в одинарных кавычках: VALUES(123123133,'Eu name','Eu society','Eu notes',true)   -  person wildplasser    schedule 22.08.2013
comment
Как вы выполняете запрос? Через графический интерфейс или интерфейс командной строки? Или создано на каком-то другом языке/фреймворке?   -  person ypercubeᵀᴹ    schedule 22.08.2013
comment
Пробовал и с одинарными кавычками, безрезультатно.   -  person    schedule 22.08.2013
comment
Сохраняйте одинарные кавычки, это будет следующая ошибка, когда вы выясните, как SELECT COUNT(*) попало в код.   -  person ypercubeᵀᴹ    schedule 22.08.2013
comment
я пробовал в Php postgres admin (ppa) и из кода.   -  person    schedule 22.08.2013
comment
Уловка № 1: введите преднамеренную синтаксическую ошибку в начале: BARF; INSERT INTO users (vk_id, eu_name, eu_society, eu_notes, eu_want_team) VALUES( ... ); Точка с запятой заставляет синтаксический анализатор выполнить повторную синхронизацию.   -  person wildplasser    schedule 22.08.2013
comment
Ну, это может быть ошибка в phpPgAdmin, я вижу отчет, открытый в мае: элемент ошибок № 3612602, открыт 03 мая 2013 г.   -  person ypercubeᵀᴹ    schedule 22.08.2013
comment
возможный дубликат INSERT INTO PostgreSQL   -  person a_horse_with_no_name    schedule 24.08.2013


Ответы (3)


Я установил phpPgAdmin, чтобы попытаться воспроизвести вашу ошибку. У меня получилось сразу при попытке создать тестовую таблицу:

введите здесь описание изображения

Похоже, phpPgAdmin заключает ваш запрос в select count(*) as total from (...). Я обнаружил, что это происходит только тогда, когда установлен флажок "Разбить результаты на страницы" на странице запроса (очевидно, phpPgAdmin пытается подсчитать, сколько строк он получит, а затем показать их страница за страницей). Снимите флажок, и ваш запрос будет работать нормально:

введите здесь описание изображения

обновлено 1

Аналогичный вопрос - INSERT INTO PostgreSQL

обновлено 2

Как упоминал @akshay в комментариях, вы также можете получить аналогичную ошибку при выполнении запросов через командную строку, см. объяснение ситуации и ответ здесь - PostgreSQL отключить больше вывода

person Roman Pekar    schedule 24.08.2013
comment
@Roman Pekar Я получаю аналогичную ошибку, но я не использую пользовательский интерфейс pgadmin. Я запускаю команды через командную строку. Как я могу исправить ошибку? - person tryingToLearn; 17.10.2014
comment
у меня пустая ошибка SQL: В заявлении: без флажка Разбить результаты на страницы - person rozochkin; 17.04.2015

Пользовательский интерфейс phpPgAdmin предоставляет две ссылки для запуска SQL: одну в основной части страницы и одну в строке меню в верхней части страницы.

Тот, что в основной части страницы, выдаст ошибку, которую вы видите, если вы запустите оператор определения данных, такой как CREATE TABLE.

Однако тот, что находится в строке меню, будет без проблем запускать запросы определения данных.

Вкратце:

экран

person user3393273    schedule 20.10.2015

вы могли бы попробовать и это

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

person Bruce Tong    schedule 30.03.2017