dilsdgr8 Ответов: 1

Базы данных SQLite Insert и того, чтение всегда будет одно и то же?


I insert data into SQLite table using "INSERT INTO.." statement
I read data from table using SELCT "FieldName" from "TableName" (that is without using ORDER BY)
=> Doubt is, whehter the read order will be same as insert order?? I expect the data in same order that is inserted?? Should i add an index field in table and use ORDER by for ensuring the order???


Что я уже пробовал:

Когда я пробовал обычно вставлять в том же порядке, что и тот, в котором он вставлен? Будет ли он всегда быть таким?

1 Ответов

Рейтинг:
12

OriginalGriff

Нет, этого не должно быть. Единственный способ быть уверенным в порядке вывода-это использовать предложение ORDER BY и ссылаться на столбец, предоставляющий этот порядок: столбец идентификаторов или метку времени.

Когда вы добавляете и удаляете строки из базы данных yoru, она оставляет "пробелы" в данных, которые могут быть заполнены позже, чтобы предотвратить увеличение файла. Это может изменить порядок данных, и на "неявный порядок" из вашей вставки никогда не следует полагаться. Если вам нужен конкретный заказ, то всегда предоставляйте предложение ORDER BY.


dilsdgr8

В моем случае я не удаляю ни одной записи. Только вставлять. В этом случае могу ли я положиться на заказ

OriginalGriff

Не обязательно, нет. Возможно, вы еще не удаляете строки*, но ...
Если вам нужен конкретный заказ, всегда используйте ORDER BY.

dilsdgr8

Спасибо..
моя таблица содержит одно поле с двоичными данными большого размера.. Когда я отдаю приказ, память, используемая приложением, резко увеличивается..