/Drupal 8

function db_next_id

db_next_id($existing_id = 0)

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.


int $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

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


as of Drupal 8.0.x, will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container and call nextId() on it. For example, $injected_database->nextId($existing_id);

See also


Related topics

Database abstraction layer
Allow the use of different database servers using the same code base.


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


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

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.