Еще раз спасибо всем за помощь. Столкнулся теперь вот с такой проблемой. Читал документацию, и натолкнулся вот на что:
>> http://www.sqlite.org/autoinc.html
...The normal ROWID selection algorithm described above will generate monotonically increasing unique ROWIDs as long as you never use the maximum ROWID value and you never delete the entry in the table with the largest ROWID. If you ever delete rows or if you ever create a row with the maximum possible ROWID, then ROWIDs from previously deleted rows might be reused when creating new rows and newly created ROWIDs might not be in strictly accending order...
то есть, если в таблице я удалял строки, а потом добавлял новые, то у них ROWID увеличивается. (а старый ROWID уже не используется.)
тогда используя:
SELECT string FROM strings
WHERE id >= (abs(random()) % (SELECT max(id) FROM strings))
LIMIT 1;
или --------
select max(rowid) from orders
select onum from orders where rowid=%1
программа может пытаться выдать уже не существующую строку. (экспериментально подтверждено)
тогда вопрос: а нет ли команды "переназначения" ROWID для каждых строк, чтобы исключить такую ситуацию?
(кстати, а как страницы форума сохранять? а то через forum_serv.php без форматирования, не удобно)
Ответов: 27
Рейтинг: 14
|
|||
карма: 1 |
|