Same name and namespace in other branches
  1. 4.6.x includes/database.pgsql.inc \db_next_id()
  2. 4.6.x includes/database.mysql.inc \db_next_id()
  3. 4.7.x includes/database.pgsql.inc \db_next_id()
  4. 4.7.x includes/database.mysqli.inc \db_next_id()
  5. 4.7.x includes/database.mysql.inc \db_next_id()
  6. 5.x includes/database.pgsql.inc \db_next_id()
  7. 5.x includes/database.mysqli.inc \db_next_id()
  8. 5.x includes/database.mysql.inc \db_next_id()
  9. 8.9.x core/includes/database.inc \db_next_id()

Retrieves a unique id.

Use this function if for some reason you can't use a serial field. Using a serial field is preferred, and InsertQuery::execute() returns the value of the last ID inserted.

Parameters

$existing_id: After a database import, it might be that the sequences table is behind, so by passing in a minimum ID, it can be assured that we never issue the same ID.

Return value

An integer number larger than any number returned before for this sequence.

Related topics

4 calls to db_next_id()
actions_save in includes/actions.inc
Saves an action and its user-supplied parameter values to the database.
batch_process in includes/form.inc
Processes the batch.
DatabaseNextIdCase::testDbNextId in modules/simpletest/tests/database_test.test
Test that the sequences API work.
user_save in modules/user/user.module
Save changes to a user account or add a new user.

File

includes/database/database.inc, line 2773
Core systems for the database layer.

Code

function db_next_id($existing_id = 0) {
  return Database::getConnection()
    ->nextId($existing_id);
}