Auto_increment. Где друпал берет id?

Главные вкладки

Аватар пользователя dRiveR dRiveR 24 января 2007 в 11:38

Проблема следующая, вставил несколько топиков для форума напрямую в базу, не используя интерфейс друпала и когда попытался добавить еще пару топиков, уже через Друпал, то он начал на меня ругаться. Вроде как "такая запись уже существует, чего тебе от меня надо?!". Дело в том, что Друпал, как я понял, где-то хранит значение vid последнего всавленного топика, а то что я вставлял вручную - его не интересует, если было 2 топика + мои 10, то следующий он все равно пытается запихнуть с vid=3. Если кто-то знает решение этой проблемы, то буду весьма благодарен, а то предстоит глобальное импортирование из другой базы, а этот ньюанс не дает покоя.

Комментарии

Аватар пользователя coyotle coyotle 24 января 2007 в 11:46

/**
* Return a new unique ID in the given sequence.
*
* For compatibility reasons, Drupal does not use auto-numbered fields in its
* database tables. Instead, this function is used to return a new unique ID
* of the type requested. If necessary, a new sequence with the given name
* will be created.
*
* Note that the table name should be in curly brackets to preserve compatibility
* with table prefixes. For example, db_next_id('{node}_nid');
*/
function db_next_id($name) {
$name = db_prefix_tables($name);
db_query('LOCK TABLES {sequences} WRITE');
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;

...

Аватар пользователя dRiveR dRiveR 24 января 2007 в 11:50

Приспасибище! За оперативность отдельное!
Так и хочется добавить: "Спасибо, что без сдачи! Приходите к на еще!" Smile