Переписать и переупорядочить таблицу - PullRequest
1 голос
/ 05 июля 2010

Я использую SQLite.Я хочу создать новую таблицу, упорядоченную иначе, чем данные существующих таблиц.Я пробовал следующее, но оно не работает ни в инструментах администратора Mozzilla SQLite, ни в SQLite Manager.Что я делаю не так?

INSERT INTO temp  (SnippetID, LibraryID,Name,  BeforeSelection, AfterSelection, ReplaceSelection, NewDocument, NewDocumentLang, Sort)
                           SELECT (SnippetID, LibraryID,Name,  BeforeSelection, AfterSelection, ReplaceSelection, NewDocument, NewDocumentLang, Sort)
                           FROM Snippets  ORDER BY LibraryID;

Спасибо - JZ

Ответы [ 2 ]

7 голосов
/ 05 июля 2010

Мой вопрос к вам прост: «Почему?». SQL является реляционной алгеброй, и наборы данных имеют порядок, только когда вы указываете его при извлечении.

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

Только когда вы извлекаете данные с select ... order by, порядок должен быть зафиксирован. Если вы хотите иметь возможность эффективно извлекать данные, упорядоченные по столбцу LibraryID, просто проиндексируйте их и используйте выражение order by при извлечении данных.

1 голос
/ 05 июля 2010

По умолчанию таблица «упорядочена» по первичному ключу или по первому столбцу таблицы, который в любом случае часто является первичным ключом.когда вы делаете

select * from mytable

, он использует этот «порядок» по умолчанию.Все, что говорит Пакс, правда, и я +1 к этому.

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