2

我有 ac 脚本,它将传入的飞机数据写入 postgres db。我想在 INSERT 之后返回新的记录 ID,但遇到了问题。

简化的代码是这样的:

int new_id;
conn = PQconnectdb("dbname = flight_dev");
PQinitTypes(conn);
PGresult *res = PQexecf(conn,"INSERT INTO aircrafts (hex) VALUES (%text)", aircraft_hex);
PQgetf(res, 0, "%int4", 0, &new_id);

INSERT 成功但未分配 new_id 并给出错误“行号 1 超出范围 0..-1”

任何帮助都会非常感谢。

4

2 回答 2

3

用于INSERT INTO aircrafts (hex) VALUES (%text) RETURNING id返回新插入行的id列

于 2013-08-29T13:05:05.123 回答
2

以前使用 RETURNING id 时我错过了分号

PGresult *res = PQexecf(conn,"INSERT INTO aircrafts (hex) VALUES (%text) RETURNING ID;", aircraft_hex);
于 2013-08-30T07:22:58.350 回答