2017-11-24 1 views
0

kann ich die Groß-/Kleinschreibung der gesamten Datenbank ausschalten, bedeutet alle Spalten aller Tabellen?SQLite - Ausschalten der Groß-/Kleinschreibung der ganzen Datenbank

was passiert, wenn ich die Datenbank bereits erstellt habe?

Muss ich es manuell für alle Spalten Einstellung COLLATE bis NOCASE tun?

ich habe NOCASE in mehreren Abfragen versucht, wie folgende

select * from ...table COLLATE NOCASE 

aber was, wenn ich oder einige andere neue Person vergessen NOCASE zu verwenden, ich bin müde jede Spalte NOCASE machen, während Tabellen zu erstellen.

Antwort

0

Sie sollten COLLATE NOCASE auf den Tisch legen. Wenn die Tabelle bereits existiert, verwenden Sie ALTER TABLE. Siehe hier sqlite.org für Beschreibung und Beispiele.

AKTUALISIEREN MrGumble hat Recht, SQLite unterstützt das Ändern der Sortierung nicht direkt mit ALTER TABLE. Sie würden durch eine Zwischen Tabelle wie folgt gehen müssen:

CREATE TABLE table01 (id, name countrycode, comment); 
INSERT INTO table01 SELECT id, name, countrycode, comment FROM table; 
DROP TABLE table; 
CREATE TABLE table (
    id  integer PRIMARY KEY AUTOINCREMENT, 
    name  text COLLATE NOCASE 
    country integer, 
    comment text COLLATE NOCASE 
); 
INSERT INTO table (id, name, countrycode, comment) 
    SELECT id, name, countrycode, comment FROM table01; 
DROP TABLE table01; 

Dort ist eine Anwendung SQLite Maestro (mit 30 Tage kostenlose Testversion), die diesen Prozess für Sie tut genannt wird.

+0

Sie können die Spalte für eine vorhandene Spalte nicht ändern. 'ALTER TABLE' kann nur * Spalten * hinzufügen oder die gesamte Tabelle umbenennen. Ihre Lösung würde funktionieren, indem Sie die Tabelle umbenennen und vor dem Kopieren der Daten eine * neue * Tabelle erstellen. – MrGumble

+0

Freunde was, wenn ich die gesamte Datenbank ändern möchte ... –

+0

@MrGumble Sie haben Recht. Sie müssen dafür eine Zwischentabelle erstellen. Siehe aktualisierte Antwort oben. –