Как узнать ID последней ноды в БД?

4 апреля 2007 в 23:02
Аватар пользователя KCEOH KCEOH 0 11

Нужно самому добавлять ноды (свой код). Но у node и node_revision нет автоинкремента, поэтому надо прямо указывать ID ноды. Вначале думал, что прокатит брать через SELECT max(nid) from 'node' но тут вот какой косяк...

Есть 20 нод, удаляем последнию получается максимальная нода 19. Я добавляю своим кодом 2 ноды - получается 21-я нода. А потом если добавлять через друпал - возникает ошибка duplicate, для друпала 21 не была занята.

Вот собственно и вопрос - как узнать, какой у ноды был последний номер?

Комментарии

Тогда мне (точнее коду) придется тянуть еще друпаловский код, минимум /include/dblayer.inc Smile

Тем более что db_next_id запрашивает то же самое из базы.

5 апреля 2007 в 9:46

Вопрос почти по теме)))
Нужно nid приравнять к vid! А как это сделать? При помощи какой команды? Неохота вручную перебивать все полторы штуки нодов))

5 апреля 2007 в 12:57

2 ultraboy@drupal.org
просто то, как я применять буду - не нужно таскать. Скрипт будет удаленно коннектицо к нескольким БД, и в каждую писать свои ноды. И скрипт желательно мобильный и маленький иметь, без довесков.

2 A.L.F.
обычно вроде они равны... или какие-то шаманства были произведены с базой?

6 апреля 2007 в 0:50

Нужно nid приравнять к vid! А как это сделать? При помощи какой команды? Неохота вручную перебивать все полторы штуки нодов))

Хммм... Может выполнить запросы вида:

UPDATE node SET vid = nid
UPDATE node_revisions SET vid = nid

Только базу сначала, на всякий пожарный, забэкапь.

6 апреля 2007 в 15:15

теперь вопрос касательно того что уже задавали))) только немного в другом ключе...
есть полторы штуки нодов, и надо стобы друпал начал публиковать скажем с 1501 ноды...
А в настоящий момент он фактически сначала публикует... с 33 ноды примерно... хотя эти ноды существуют и далее...
Как заставить его начинать публиковать с ноды которой мне нужно?

7 апреля 2007 в 20:30