PEAR DB. Генерация последовательностей.

Статус
В этой теме нельзя размещать новые ответы.

Baton

Новичок
PEAR DB. Генерация последовательностей.

Здравствуйте.

Пишу цмс-ку и решил использовать PEAR DB . У меня есть достаточный опыт работы с mysql, все проекты которые я когда-либо писал, были заточены под эту базу. Как известно, в мускуле можно задать автоинкрементные первичные поля, программист может не думать о предварительной генерации первичных ключей. После запроса, при желании можно узнать последней добавленный ключ с помощью функции mysql_inserted_id()

Для меня было необычным, что автоинкрементные первичные поля - это фишка мускуля, в других базах надо заранее создать ключ и указывать его в запросе.

Если использовать PEAR DB, то нужно написать что-то типо этого:

$nextId=$db->nextId('tableName');

$q="INSERT INTO tableName
(id,data)
VALUES(".$nextId.",'".$data."')";

$db->query();

Вопрос у меня следующий: как работает $db->nextId('tableName') ? Создаётся последовательность, которая где-то хранится. Как и где хранится последовательность? Если я перегружу скрипт, то полученные ключи повторяться не будут, тоесть предыдущее состояние где-то сохранилось. Меня смутило то, что при первом запуске похожего скрипта, отсчёт начался с 1, в то время как таблица уже содержала несколько записей, и первичное поле не могло быть равным 1.

Данный вопрос меня интересует с точки зрения переносимости. Допустим я слил дамп базы, скопировал скрипты, и перенёс на другой сервер. С какого номера в данном случае буду генерироваться ключи, снова с единицы? Как быть, может я чего-то не понял?

ЗЫ: сильно не пинайте :)
 

hermit_refined

Отшельник
а в исходниках посмотреть?..
к тому же - вы не сказали, какая именно бд вас интересует.

P.S. если вы будете делать дамп всей базы, и использовать только PEAR_DB - проблем быть не должно.
 

Romantik

TeaM PHPClub
А заглянуть в базу не пробовали на предмет новой таблицы и посмотртеть что там?
 

Baton

Новичок
Я вас спаршиваю не о том, что мне надо сделать чтобы разобраться, я вас спрашиваю ответы на мои вопросы. Если не знаете, то не надо писать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху