Необходимо создать возрастающую последовательность уникальных идентификаторов – целых чисел. Например, требуется присвоить уникальные идентификаторы пользователям, договорам или другим объектам при внесении их в базу данных.
В PEAR DB для получения следующего целого значения применяется функция DB::nextId() с именем последовательности:
$id = $dbh->nextId('user_ids');
По умолчанию последовательность создается, если она еще не существует, и первому идентификатору в последовательности присваивается 1. В следующем операторе INSERT можно использовать целое значение, возвращенное функцией nextId():
$id = $dbh->nextId('user_ids');
$dbh->query("INSERT INTO users (id,name) VALUES ($id,'david')");
Этот оператор вставляет запись в таблицу users с id, равным 1, и name, равным david. Чтобы предотвратить создание последовательности, если она не существует, передайте значение false в качестве второго аргумента в функцию nextId():
$id = $dbh->nextId('user_ids',false);
$dbh->query("INSERT INTO users (id,name) VALUES ($id,'david')");
Для создания последовательности вызовите функцию createSequence(); а для удаления последовательности – функцию dropSequence():
$dbh->createSequence('flowers');
$id = $dbh->nextId('flowers');
$dbh->dropSequence('flowers');
При попытке создания последовательности, которая уже существует, или удаления несуществующей последовательности возвращается объект DB_Error.