如何使用libpqtype从Insert返回id

时间:2013-08-29 11:21:46

标签: c postgresql

我有一个c脚本,它将传入的飞机数据写入postgres数据库。 我想在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”

任何帮助都会非常感谢。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

以前使用RETURNING id

时我错过了分号
PGresult *res = PQexecf(conn,"INSERT INTO aircrafts (hex) VALUES (%text) RETURNING ID;", aircraft_hex);