В чем разница между & ldquo; STL & rdquo; и & ldquo; Стандартная библиотека C ++ & rdquo ;?

Любой подход выполняет тот же самый точный оператор SQL, но java.sql.Statement.getGeneratedKeys() более переносима в разные базовые базы данных.

Используя либо sqlite3_last_insert_rowid() C API или функция SQL last_insert_rowid() SQL - это правильный способ получения строки, сгенерированной во время последней вставки.

SQLite поддерживает скалярную функцию SQL :

SELECT function-name();

Поэтому, если у вас нет прямого доступа к API C, вы можете вызвать скалярную функцию last_insert_rowid() с помощью оператора SELECT.

Если вы посмотрите на исходный код для реализации SQLiteJDBC (это то, что вы используете?), вы увидите, что это именно то, что автор этого JDBC обертка:

ResultSet getGeneratedKeys() throws SQLException {
    if (getGeneratedKeys == null) getGeneratedKeys = conn.prepareStatement(
        "select last_insert_rowid();");
    return getGeneratedKeys.executeQuery();
}

413
задан xskxzr 13 April 2018 в 17:33
поделиться