PostgreSQL INSERT确认参数是什么意思?

时间:2010-09-30 22:37:52

标签: postgresql insert

在我的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)。

如果我检查数据,插入数据,主键增加1,一切似乎都很好,我不知道为什么我的应用程序返回错误(可能是应用程序或我的代码中的错误) 。

但如果我知道INSERT 0 1的意思,那将有助于我向自己保证:

  1. 是的,插入没有错误,或
  2. 不,0 1表示某种错误。
  3. 如果有人有PostgreSQL文档的链接,告诉我们这些服务器响应参数是什么,我会研究它......我到处寻找。

2 个答案:

答案 0 :(得分:30)

摘自the relevant page in the manual

  

输出

     

成功完成后,INSERT命令将返回格式为

的命令标记      

INSERT oid count

     

计数是插入的行数。如果count正好为1,并且目标表具有OID,则oid是分配给插入行的OID。否则oid为零。

答案 1 :(得分:5)

令人讨厌,我找不到任何关于此的实际文档。

然而,在http://www.postgresql.org/docs/current/interactive/rules-status.html内查看http://www.postgresql.org/docs/current/interactive/libpq-exec.html和PQcmdStatus,您看到的是命令状态。

我在文档中推断的格式为COMMAND STATUS_CODE ROWS_AFFECTED

所以你看到的是你已完成插入,status_code为零,并且一行受到影响。

换句话说,您的命令已成功完成!