在我的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
的意思,那将有助于我向自己保证:
0 1
表示某种错误。如果有人有PostgreSQL文档的链接,告诉我们这些服务器响应参数是什么,我会研究它......我到处寻找。
答案 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为零,并且一行受到影响。
换句话说,您的命令已成功完成!