Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизОпределить первый свободный ID Найти похожие ветки
← →
dmitryK (2001-12-05 12:33) [10]select min(t1.ID)+1
from tabX t1 left join tabX t2 on t1.ID=t2.ID+1
where where t2.ID is NULL
tabX - это и есть твоя таблица. Она объединяется сама с собой. В результате получаешь запрос, который включает две колонки с ID
первая - все ID имеющиеся в твоей таблице,
вторая - если ID+1 есть, то ее значение, если нет, то NULL
where where t2.ID is NULL - оставляет только те где вторая колонка NULL, т.е. ID+1 свободно.
min(t1.ID)+1 - возращает минимальный номер свободного ID.
Подробнее читай описание языка SQL.
У такого запроса только один недостаток, должна быть хотябы одна запись в таблице, и номер свободного ID будет всегда больше минимального занятого.
Но это уже другая история...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c