Перейти к содержимому

Without rowid sqlite что это

  • автор:

Как создать базу данных SQLite без rowid?

Удивитесь, но это написано в документации к SQLite: надо в CREATE TABLE указать.

CREATE TABLE IF NOT EXISTS wordcount( word TEXT PRIMARY KEY, cnt INTEGER ) WITHOUT ROWID; --^^^^^^^ ^^^^^ вот это 

У этого есть масса плюсов и минусов, которые расписаны там же. Самое важное:

  • В таблице без rowid должен быть первичный ключ.
  • AUTOINCREMENT не будет работать.
  • sqlite3_update_hook() на таблицы без rowid работать не будет.
  • Таблица будет устроена проще, поскольку не будет иметь обязательного индекса с rowid , некоторые виды поиска будут быстрее.

Without rowid sqlite что это

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

unixforum.org

SQLite3 оптимизация хранения (sqlite3, sqlite, sql, базы данных)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

5 сообщений • Страница 1 из 1
tonchikp Сообщения: 15 ОС: Linux

SQLite3 оптимизация хранения

Сообщение tonchikp » 27.08.2017 14:58

Уважаемые форумчане! Требуется ваша помощь!

Есть таблица-словарь SQLite3, где перечисляется что-то (не важно что, суть не в этом)

Ранее создавал так:

CREATE TABLE table ( id INTEGER PRIMARY KEY AUTOINCREMENT, obj TEXT UNIQUE );

Задумался, ведь тут по сути 3 поля с UNIQUE (rowid, id, obj), 2 с AUTOINCREMENT (rowid, id). Получается дублируются роли полей, выполняется возможно ненужная работа, нерациональность. Насколько я понимаю PRIMARY KEY в себе несёт UNIQUE и NOT NULL.

Может лучше так:

CREATE TABLE table ( obj TEXT PRIMARY KEY ) WITHOUT ROWID;

Подскажите пожалуйста, какие могут быть подводные камни нового подхода? Иными словами, какие минусы?

DbcH SQLite

Уже существует немало подобных инструментов для SQLite, в т.ч. свободных, поэтому сразу возникает вопрос:
зачем писать еще один ?

Во-первых, я просто хотел поглубже изучить возможности SQLite — и разработка менеджера баз данных, как мне кажется, неплохой способ.
Во-вторых, меня не устраивают некоторые особенности интерфейса большинства существующих менеджеров. Когда я открываю базу данных, меня в первую очередь интересует, что за данные она содержит — т.е. перечень таблиц и хранящихся в них данных. Многие менеджеры перегружены информацией, они сразу показывают все, что могут — индексы, view, триггеры — все это в дереве ( tree view ) и не сразу бывает понятно, как добраться до главного — до данных. На мой взгляд все эти дополнительные объекты должны быть показаны по моему запросу ( пункт меню, комбинация клавиш ), а не сразу по открытии базы данных, отвлекая от главного.
В-третьих, на момент написания этой программы (декабрь 2014) большинство менеджеров, которые я испробовал, не поддерживали некоторые недавно добавленные особенности SQLite. Они даже отказывались открывать базы данных, содержащие таблицы, созданные «WITHOUT ROWID».
Ну и, наконец, всегда удобно иметь инструмент, в который ты можешь при необходимости добавить любые возможности.

  • список таблиц открытой базы данных;
  • просмотр/редактирование данных в любой таблице;
  • просмотр структуры и др.информации о таблице;
  • вывод полной структуры базы данных;
  • дамп базы данных;
  • просмотр/редактирование параметров (pragmas) базы данных;
  • создание таблиц и индексов;
  • удаление таблиц и индексов;
  • ввод, редактирование и выполнение SQL запросов;
  • подсветка синтаксиса SQL запросов;
  • автодополнение при редактировании SQL запросов (по клавише TAB);
  • сохранение SQL запроса в отдельном файле и загрузка из файла;
  • история SQL запросов отдельно для каждой базы данных.

Комментариев: ( ) пред. след. Добавить комментарий

Длина комментария — не больше 4000 символов.
Ваше имя:

Адрес электронной почты:
(не предназначено к показу)

&nbsp Обновить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *