Überprüfen Sie, ob in SQLite eine Spalte vorhanden ist
Brauche ich um zu prüfen ob eine Spalte existiert, und wenn es nicht existiert, fügen Sie es hinzu. Aus meiner Forschung es sieht aus wie sqlite unterstützt keine IF-Anweisungen und case-Anweisung verwendet werden soll.
Hier ist was ich habe, so weit:
SELECT CASE WHEN exists(select * from qaqc.columns where Name = "arg" and Object_ID = Object_ID("QAQC_Tasks")) = 0 THEN ALTER TABLE QAQC_Tasks ADD arg INT DEFAULT(0);
Aber ich bekomme den Fehler: in der Nähe von "ALTER": Syntax-Fehler.
Irgendwelche Ideen?
InformationsquelleAutor der Frage Herrozerro | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden
ALTER TABLE with
Fall.
Du suchst immer die Namen der Spalten für eine Tabelle::-
Überprüfen Sie das tutorial auf PRAGMA
InformationsquelleAutor der Antwort Rahul Tripathi
InformationsquelleAutor der Antwort Pankaj Jangid
Habe ich diese Lösung:
Es ist eine Variante von code von Pankaj Jangid.
InformationsquelleAutor der Antwort Giancarlo Sereni
Einer seltsamen Art und Weise zu prüfen, vorhandene Spalte
InformationsquelleAutor der Antwort PaRiMaL RaJ
Um Spaltennamen für die Tabelle:
Bekommen indizierten Spalten:
InformationsquelleAutor der Antwort Oleksandr
Update der DATABASE_VERSION so onUpgrade-Funktion aufgerufen wird, dann, wenn die Spalte bereits vorhanden ist, dann kann auch nichts passieren, wenn nicht dann wird es neue Spalte hinzufügen.
}
InformationsquelleAutor der Antwort jakir hussain
Obwohl dies eine alte Frage fand ich bei PRAGMA-Funktionen eine einfachere Lösung:
Wenn das Ergebnis größer ist als null, dann ist die Spalte vorhanden ist. Einfache und line-Abfrage
Der trick ist die Verwendung
statt
InformationsquelleAutor der Antwort Formentz
Sie nicht angeben, eine Sprache, vorausgesetzt, es ist nicht reines sql, Sie können überprüfen für Fehler, die sich auf Spalte Abfragen von:
wenn Sie eine Fehlermeldung erhalten, so dass Sie wissen, dass die Spalte nicht da ist (vorausgesetzt, Sie wissen, die Tabelle vorhanden ist, trotzdem haben Sie die "IF not EXISTS"), andernfalls wird die Spalte existiert und dann können Sie ändern Sie die Tabelle entsprechend.
InformationsquelleAutor der Antwort TechNyquist
InformationsquelleAutor der Antwort Claus Elmann
Ich aktualisiert die Funktion von einem Freund getestet... und funktioniert jetzt
InformationsquelleAutor der Antwort andrey2ag
Ich bin wirklich sorry für die Buchung ist es zu spät. Veröffentlichung in der Absicht, das kann hilfreich sein, jemanden in die Falle.
Habe ich versucht das abrufen der Spalte aus der Datenbank. Wenn es gibt eine Zeile, die es enthält, die Spalte sonst nicht...
InformationsquelleAutor der Antwort Abdul Yasin
Einige dieser Beispiele hat nicht für mich gearbeitet. Ich versuche zu prüfen, ob meine Tabelle bereits eine Spalte enthält oder nicht.
Ich bin mit diesem snippet:
Obigen Beispiele sind Abfragen der pragma-Tisch ist ein Metadaten-Tabelle und nicht die eigentlichen Daten, in der jede Spalte zeigt den Namen, Typ und einige andere Sachen, über die Spalten der Tabelle. Also den tatsächlichen Namen der Spalten sind in den Zeilen.
Hoffe, dass dies hilft jemand anderes.
InformationsquelleAutor der Antwort 4gus71n
Ähnlich
IF
in SQLite,CASE
in SQLite ist eine Ausdruck. Sie können nichtALTER TABLE
. Siehe: http://www.sqlite.org/lang_expr.htmlInformationsquelleAutor der Antwort Colonel Thirty Two
Pankaj Jangid ' s Antwort ist in der Nähe, aber nicht ganz korrekt. Hier ist es mit Korrekturen:
InformationsquelleAutor der Antwort Adil Hussain