Wie kann ich eine Spalte in SQLITE löschen oder hinzufügen?
Möchte ich löschen, oder fügen Sie eine Spalte in sqlite-Datenbank
Verwende ich folgende Abfrage auf Spalte löschen.
ALTER TABLE TABLENAME DROP COLUMN COLUMNNAME
Aber es gibt Fehler
System.Data.SQLite.SQLiteException: SQLite error
near "DROP": syntax error
InformationsquelleAutor der Frage Sandip | 2011-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
ALTER TABLE SQLite
Können Sie:
InformationsquelleAutor der Antwort Michał Powaga
Habe ich schon schrieb, eine Java-Implementierung, basierend auf der Sqlite empfohlene Weg, dies zu tun:
Um die Tabelle, Spalte, ich habe das "PRAGMA table_info":
Ich schrieb sogar darüber auf meinem blog, Sie können sehen, weitere Erklärungen gibt es:
http://udinic.wordpress.com/2012/05/09/sqlite-drop-column-support/
InformationsquelleAutor der Antwort Udinic
Als andere haben darauf hingewiesen,
Quelle : http://www.sqlite.org/lang_altertable.html
Während Sie immer erstellen Sie eine neue Tabelle, und löschen Sie dann die ältere.
Ich werde versuchen zu erklären, diese Problemumgehung mit einem Beispiel.
Nun wollen Sie zum entfernen der Spalte
height
aus dieser Tabelle.Erstellen Sie eine weitere Tabelle namens
new_person
Kopieren Sie nun die Daten aus der alten Tabelle
Legen Sie nun die
person
Tabelle und benennen Sienew_person
zuperson
Also nun, wenn Sie ein
.schema
sehen SieInformationsquelleAutor der Antwort Tasdik Rahman
http://www.sqlite.org/lang_altertable.html
Wie Sie im Diagramm sehen, nur ADD-SPALTE unterstützt. Es ist eine (ein bisschen schwer) workaround, aber: http://www.sqlite.org/faq.html#q11
InformationsquelleAutor der Antwort LeleDumbo
Können wir nicht fallen eine bestimmte Spalte in SQLite 3. Finden Sie die FAQ.
InformationsquelleAutor der Antwort sandeep valapishetty
Wie andere haben darauf hingewiesen, sqlite ist
ALTER TABLE
- Anweisung wird nicht unterstützenDROP COLUMN
und die standard-Rezeptur zu tun, diese wird jedoch nicht beibehalten Einschränkungen & Indizes.Hier einige python-code, um dies zu tun generisch, während die Aufrechterhaltung alle key-constraints und Indizes.
Bitte sichern Sie Ihre Datenbank vor der Verwendung! Diese Funktion beruht auf der Heilung der ursprünglichen CREATE TABLE-Anweisung und möglicherweise eine etwas unsichere - zum Beispiel es wird das falsche tun, wenn ein Bezeichner enthält ein eingebettetes Komma oder Klammer.
Wenn jemand egal um dazu beitragen, einen besseren Weg, um eine Analyse der SQL, das wäre toll!
UPDATE ich fand eine bessere Art und Weise zu analysieren ist mit dem open-source -
sqlparse
Paket. Wenn Interesse bestehen werde ich es hier posten, einfach einen Kommentar hinterlassen, Fragen ...InformationsquelleAutor der Antwort spam_eggs
Ich schrieb die @Udinic Antwort damit erzeugt der code zur Erstellung der Tabelle Abfrage automatisch. Es ist auch nicht brauchen
ConnectionSource
. Es hat auch dazu in einem Transaktion.InformationsquelleAutor der Antwort soshial
Als SQLite hat begrenzte Unterstützung für ALTER TABLE, so können Sie nur FÜGEN Sie eine Spalte am Ende der Tabelle ODER ÄNDERN TABLE_NAME in SQLite.
Hier ist die Beste Antwort, WIE SPALTE LÖSCHEN VON SQLITE?
besuchen Spalte löschen von SQLite-Tabelle
InformationsquelleAutor der Antwort Gaurav Singla
Umsetzung in
Python
basiert auf Informationen, die bei http://www.sqlite.org/faq.html#q11.Diesem Skript wird zuerst macht zufällige temporäre Tabelle und fügt die Daten nur die notwendigen Spalten außer der, wird fallen gelassen werden. Stellt dann die original-Tabelle auf der Basis der temporären Tabelle und löscht die temporäre Tabelle.
InformationsquelleAutor der Antwort Akif
Können Sie den SQlite Administrator für die änderung der Spalte Namen.
Der rechten Maustaste auf die Tabelle und wählen Sie Tabelle Bearbeiten.Hier finden Sie die Struktur der Tabelle und man kann Sie problemlos umbenennen.
InformationsquelleAutor der Antwort Tushar Baxi
Als alternative:
Wenn Sie eine Tabelle mit schema
können Sie eine
CREATE TABLE...AS
Aussage wieCREATE TABLE person2 AS SELECT id, first_name, last_name, age FROM person;
d.h. lassen sich die Spalten, die Sie nicht wollen. Löschen Sie anschließend den ursprünglichenperson
Tabelle und benennen Sie die neue.Hinweis: diese Methode erzeugt eine Tabelle hat kein PRIMARY KEY und keine Einschränkungen. Zu erhalten, nutzen Sie die Methoden beschrieben andere, eine neue Tabelle zu erstellen, oder verwenden Sie eine temporäre Tabelle als Zwischenprodukt.
InformationsquelleAutor der Antwort karkarlawawa
Diese Antwort auf eine andere Frage orientiert sich an der ändern eine Spalte, aber ich glaube ein Teil der Antwort könnte auch Rendite sinnvoll, wenn Sie viele Spalten haben und nicht wollen zu geben die meisten von Ihnen von hand für Ihre INSERT-Anweisung:
https://stackoverflow.com/a/10385666
Könnten Sie dump Ihrer Datenbank, wie beschrieben in den link oben, dann greifen Sie das "create table" - Anweisung und einem "insert" - Vorlage aus, die Müllkippe, dann Folgen Sie den Anweisungen in der SQLite-FAQ-Eintrag "Wie kann ich hinzufügen oder löschen von Spalten aus einer vorhandenen Tabelle in SQLite." (FAQ verlinkt, ist an anderer Stelle auf dieser Seite.)
InformationsquelleAutor der Antwort burpgrass
können Sie Sqlitebrowser. Im browser-Modus, für die entsprechende Datenbank und die Tabelle unter der Registerkarte -Datenbank-Struktur,nach der option " Tabelle Ändern, jeweiligen Spalte entfernt werden konnte.
InformationsquelleAutor der Antwort iamigham
Beispiel, um eine Spalte hinzuzufügen:-
hier student ist table_name und TOB ist column_name Hinzugefügt werden.
Es funktioniert und getestet.
InformationsquelleAutor der Antwort Daredevil Kallol
und nur eine Methode aufrufen
InformationsquelleAutor der Antwort Sagar Makhija
Meine Lösung, nur müssen diese Methode aufrufen.
- Und aux-Methode auf, um die Spalten:
InformationsquelleAutor der Antwort user2638929
Habe ich verbessert user2638929 Antwort und jetzt kann es bewahrt Spalte Typ, Primärschlüssel und default-Wert etc.
PS. Habe ich hier
android.arch.persistence.db.SupportSQLiteDatabase
aber Sie können leicht ändern, die Sie zur Nutzungandroid.database.sqlite.SQLiteDatabase
InformationsquelleAutor der Antwort Berdimurat Masaliev
Ferner können Sie nun mit DB browser for SQLite zu manipulieren, Spalten
InformationsquelleAutor der Antwort Jamal Mahroof