Я использую soci с C ++ для доступа к моей базе данных. Можно ли изменить следующее выражение таким образом, чтобы получить новый первичный ключ, который был дан строке, добавленной этим выражением?
*dbSession << "insert into myTable(myRow) values (:myVal)", soci::use(myVal);
например
long newID = *dbSession << "insert into myTable(myRow) values (:myVal)", soci::use(myVal);
Чтобы я мог продолжить свою работу, используя newID? в этом случае id является первичным ключом (bigserial)
В SQL вы можете использовать RETURNING
чтобы получить сгенерированный идентификатор.
Подобно: INSERT INTO tbloCustomer (Name) VALUES ('Goofy') RETURNING ID;
(Если ваш первичный ключ называется ID;)
Других решений пока нет …