Порядок данных в базе данных SQLite - PullRequest
1 голос
/ 05 июня 2011

Если бы мне нужно было вставить много строк в пустую таблицу без первичного ключа или индексов.Различное количество строк может быть вставлено за транзакцию.Могу ли я тогда быть уверен, что SELECT * FROM the_table;будет получать данные в том же порядке в Linux и Windows?

1 Ответ

3 голосов
/ 05 июня 2011

Нет, вы не можете и никогда не должны полагаться на порядок строк в наборе результатов из запроса, который не имеет ограничений на порядок. Даже на той же платформе, той же базе данных. Даже если это работает в ваших тестах.

Такие вещи, как VACCUM в вашей базе данных (или, я думаю, в некоторых режимах auto_vaccum), могут изменить относительную компоновку блоков ваших данных и изменить набор результатов, даже если в другом месте ничего не изменилось (без вставок, без изменения плана запроса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...