Что означают параметры подтверждения PostgreSQL INSERT? - PullRequest
22 голосов
/ 01 октября 2010

В моем приложении LiveCode Server я получаю dberr, возвращенный при вставке, но без явного кода ошибки.

Я пошел на терминал и произвел вставку вручную как пользователь Postgres.

%My_Dbase=# INSERT INTO new-table (first_name, last_name, anonymous) VALUES ('batman', 'Moonboy', TRUE);

Процесс psql возвращает:

INSERT 0 1

Что означает эта строка?Помимо первичной таблицы у меня также есть последовательность для увеличения ID первичного ключа (int) основной таблицы.

Если я проверяю данные, данные вставляются, первичный ключ увеличивается на единицу, и все выглядит нормально, я не уверен, почему мое приложение возвращает ошибку (это может быть ошибка в приложении илимой код).

Но если бы я знал, что означает INSERT 0 1, это помогло бы мне убедиться, что:

  1. Да, вставка была выполнена без ошибок, или
  2. Нет0 1 указывает на какую-то ошибку.

Если у кого-нибудь есть ссылка на документ PostgreSQL, в котором сообщается, что представляют собой эти параметры ответа сервера, я изучу его ... Я искал везде.

Ответы [ 2 ]

31 голосов
/ 01 октября 2010

Выдержка из соответствующей страницы в руководстве :

Выходы

При успешном завершении команда INSERT возвращает тег команды вида

INSERT oid count

Количество - это количество вставленных строк.Если значение count равно единице, а в целевой таблице есть OID, то oid - это OID, назначенный вставленной строке.В противном случае oid равен нулю.

5 голосов
/ 01 октября 2010

Достаточно досадно, но я не могу найти никакой документации по этому поводу.

Однако, глядя на http://www.postgresql.org/docs/current/interactive/rules-status.html и PQcmdStatus в пределах http://www.postgresql.org/docs/current/interactive/libpq-exec.html,, кажется, что вы видите статус команды.

Формат, который я определяю из документации: COMMAND STATUS_CODE ROWS_AFFECTED.

Итак, вы видите, что вы сделали вставку, код статуса был равен нулю и одна строка была затронута.

Другими словами, ваша команда успешно завершается!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...