А мозги, у работающего с БД, зачем ?
А VACUUM зачем ?
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
|
Ответов: 758
Рейтинг: 112
|
|||
Tad писал(а): [compound-op select]*Можете расказать что этот оператор означает |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
miver, посмотри здесь http://www.sql.ru/docs/sql/u_sql/ch14.shtml если что-то будет непонятно тогда прийдется пример сделать
|
|||
карма: 25 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2022-04-03 00:49:21 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
miver, вот во второй колонке StringTable выведены названия групп и названия компонент + информация о компонентах, т.е. в одну колонку из двух разных таблиц.
code_25405.txt |
|||
карма: 25 |
| ||
файлы: 1 | code_25405.txt [767B] [357] | ||
Голосовали: | miver |
Ответов: 5446
Рейтинг: 323
|
|||
Tad писал(а): А мозги, у работающего с БД, зачем ?А VACUUM зачем ? При чём тут мозги - поясни, плиз. А VACUUM - да, перенумерует. А кстати, мы ведь так и не выяснили у топикстартера, что в его понимании есть "5я запись" - может, это 5я по алфавиту по какой-нибудь колонке? |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Tad писал(а): А мозги, у работающего с БД, зачем ?Да и Vacuum ничего не переименует. Просто удалит пустые места. А порядок rowid как был, так и останется. И если удалена 5-я запись, то так и будет 1,2,3,4,6,7 и т.д. |
|||
карма: 25 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Tad писал(а): Мозги нужны для того, чтобы правильно поставить задачу.Ну раз так, вот задача code_25413.txt Теперь нужно тоже самое только на sqlite. |
|||
карма: 0 |
| ||
файлы: 1 | code_25413.txt [756B] [212] |
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249 писал(а): Ну раз так, вот задачаЭто издевательство над БД. testbd.rar Если захочешь каждый раз начинать с 15-и строк - включи Check |
|||
карма: 25 |
| ||
файлы: 1 | testbd.rar [1KB] [219] | ||
Голосовали: | hitman249 |
Ответов: 1528
Рейтинг: 57
|
|||
остался replace
тоже самое только с перезаписью ячейки др. данными |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249,
БД - это не мусорка. БД - это набор уникальных (неповторяющихся) записей. Для того, чтобы запись стала уникальной, при создании таблицы добавляют ещё колонку "Номер записи".
А для модификации записей БД есть всего четыре команды (кстати прекрасно описанные в нашем Wiki): Добавить INSERT Удалить DELETE Изменить UPDATE Заменить REPLACE testbd2.rar |
|||
карма: 25 |
| ||
файлы: 1 | testbd2.rar [1.2KB] [378] |
Ответов: 5446
Рейтинг: 323
|
|||
Tad, для упрощения жизни пользователю лучше так:
(Примечание: впрочем, вероятность повторного использования невелика: нужно добавить очень много записей - около 9,000,000,000,000,000,000) |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
iarspider, ну давай поспорим.
1. Основной принцип БД : Чтобы поддерживать максимальную гибкость БД, строки таблицы, по определению, не должны находиться ни в каком определенном порядке. 2. Если я удалил (в процессе работы с БД) первых 8,999,999,999,999,999 то у меня (при AUTOINCREMENT) останется только доступными 1000 номеров. 3. Какое мне дело - какой уникальный ID будет присвоен следующей записи ? И в чем я выиграю со словом AUTOINCREMENT ? 4. Встречал ещё и такой совет:
iarspider писал(а): без AUTOINCREMENT SQLite может повторно использовать индексыОсновной принцип БД : Чтобы поддерживать максимальную гибкость БД, строки таблицы, по определению, не должны находиться ни в каком определенном порядке. и всегда иметь уникальный (невидимый) ROWIDвы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку к которому в SQLite можно всегда обратиться. |
|||
карма: 25 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Tad,
1. Это из "Понимание SQL" цитата, да? Тогда ровно через один параграф читаем: "<...> вы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку." 2. А ты доживи до такого числа записей 3. Связывание таблиц (см. того же Грабера) 4. Согласен, это уже лишнее. 5. Опять же согласен, не внимательно прочитал. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Без AUTOINCREMENT : Если значение ROWID равно максимально возможному числу (9223372036854775807), то ядро базы данных начинает рандомно искать свободный ROWID.
С AUTOINCREMENT получишь сообщение об ошибке. AUTOINCREMENT - это команда для ROWID. iarspider писал(а): А ты доживи до такого числа записей |
|||
карма: 25 |
|