Es scheint, dass es für reordering columns
in sqlite3 table
nicht einfach ist. Zumindest die sqlite manager
in firefox
unterstützt diese Funktion nicht. Verschieben Sie beispielsweise column2 in column3 und verschieben Sie column5 in column2. Gibt es eine Möglichkeit, Spalten in der SQLite-Tabelle neu anzuordnen, entweder mit einer SQLite-Verwaltungssoftware oder einem Skript? Danke.
Dies ist keine einfache Aufgabe in einem DBMS. Sie müssten fast sicher eine neue Tabelle mit der gewünschten Reihenfolge erstellen und Ihre Daten von einer Tabelle in die Reihenfolge verschieben. Es gibt keine alter table-Anweisung, um die Spalten neu anzuordnen. Daher werden Sie in sqlite manager oder an einem anderen Ort keine Möglichkeit finden, dies in derselben Tabelle zu tun.
Wenn Sie die Reihenfolge wirklich ändern möchten, können Sie Folgendes tun:
Angenommen, Sie haben tabelleA:
%Vor%Sie könnten eine Tabelle erstellen, deren Spalten wie gewünscht sortiert sind:
%Vor%Verschieben Sie die Daten anschließend in TabelleB aus TabelleA:
%Vor%Entfernen Sie dann die ursprüngliche TabelleA und benennen Sie TabelleB in TabelleA um:
%Vor%Die Reihenfolge in sqlite3 spielt eine Rolle. Konzeptionell sollte es nicht, aber versuchen Sie dieses Experiment, um zu beweisen, dass es tut:
%Vor%Füllen Sie die Tabelle mit etwa 20.000 Datensätzen auf, wobei die Miniaturansicht ein kleines JPEG ist. Dann machen Sie ein paar Fragen wie folgt:
%Vor%Unabhängig davon, wie viele Datensätze zurückgegeben werden, dauert die erste Abfrage auf meinem Computer etwa 0.0.008s und die zweite Abfrage 0.09442s. Massiver Unterschied, und der Grund ist wegen des Blobs; Dateigröße ist bevor der Blob und basicscanstatus danach ist.
Wir haben den Blob jetzt in seinen eigenen Tisch verschoben, und unsere App ist glücklich.