From 1710cece1af1a675300e8483dca0ea2101806d33 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 12 Oct 2017 11:23:18 +0200 Subject: [PATCH] feat(AbstractDb): supports MySql backend for last insert id --- src/db/abstract/abstract-db.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/db/abstract/abstract-db.cpp b/src/db/abstract/abstract-db.cpp index 731f53bed..94baefbae 100644 --- a/src/db/abstract/abstract-db.cpp +++ b/src/db/abstract/abstract-db.cpp @@ -91,21 +91,24 @@ string AbstractDb::primaryKeyAutoIncrementStr (const string &type) const { } long AbstractDb::getLastInsertId () const { - L_D(); - - string sql; - switch(d->backend) { - case Sqlite3: - sql = "SELECT last_insert_rowid()"; - break; - default: - lWarning() << "Unsupported backend."; - return -1; - } - long result = 0; #ifdef SOCI_ENABLED + L_D(); + + string sql; + switch (d->backend) { + case Mysql: + sql = "SELECT LAST_INSERT_ID()"; + break; + case Sqlite3: + sql = "SELECT last_insert_rowid()"; + break; + default: + lWarning() << "Unsupported backend."; + return -1; + } + soci::session *session = d->dbSession.getBackendSession(); *session << sql, soci::into(result); #endif // ifdef SOCI_ENABLED