Найти - Пользователи
Полная версия: rowid в sqlite
Начало » Базы данных » rowid в sqlite
1
360
Помогите, пожалуйста.
Есть база данных, вида (пример)
————-
| id | task|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
————-
id присваивается через “id integer primary key”
как мне сделать так, чтобы при удалении, например, записи 3 или записи 2 или какой другой, чтобы не нарушался порядок в id?
то есть был было бы не 1, 2, 4 или не 1, 3, 4, соответственно, а 1, 2, 3?
Nik
Весь смысл primary key в уникальности ключа, а не в последовательности цифр.
360
спасибо, понял.
тогда как сделать так, чтобы записи в столбце task были пронумерованы от 1? и при удалении значения смещались, т.е. нарушения последовательности не происходило?
Nik
Нарушения последовательности и не происходит. Новые записи всегда будут иметь больший id. Сортируйте по id, нумеруйте при выводе (если нужна четкая последовательность). Количество позиций на странице ведь известно… Рассчитать остальное достаточно просто…
360
большое спасибо.
одного немного не могу додумать:
если есть таблица, например,
abc
def
ghi
jkl

то как пронумеровать, чтобы на выходе было
1. abc
2. def
3. ghi
4. jkl

?
pythonwin
select id, task from table_name sorted by id;
Ferroman
enumerate ?
360
Ferroman
да, как раз enumerate, в моем случае сделано так:
curs.execute("select * from item")
for row in curs:
print row
но я немного недопонимаю как реализовать через enumerate
pyuser
может так:
for i, row in enumerate(iter(curs.fetchone, None)):
print(i, row)
ЗЫ. проверить в данный момент не могу, нет Python'а под рукой :-(
360
да, работает, большое спасибо :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB