Im using soci with C++ to access my database. Is it possible to modify the following expression in a way to get the new primary key that was given to the row which is added by that expression?

 *dbSession << "insert into myTable(myRow) values (:myVal)", soci::use(myVal);

e.g.

 long newID = *dbSession << "insert into myTable(myRow) values (:myVal)", soci::use(myVal);

So that I can continue my work by using newID? id is in this case the primary key (bigserial)

有帮助吗?

解决方案

In SQL you can use RETURNING to get the generated ID.
Like: INSERT INTO tbloCustomer (Name) VALUES ('Goofy') RETURNING ID;
(If your Primary Key is called ID ;)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top