Ist es möglich, die Tabelle MULTIPLE Spalten in einer einzelnen Anweisung in SQLite hinzuzufügen? Folgendes würde nicht funktionieren.
Tabellentest ändern Spalte mycolumn1 Text hinzufügen, Spalte mycolumn2 Text hinzufügen;
Ist es möglich, die Tabelle MULTIPLE Spalten in einer einzelnen Anweisung in SQLite hinzuzufügen? Folgendes würde nicht funktionieren.
Tabellentest ändern Spalte mycolumn1 Text hinzufügen, Spalte mycolumn2 Text hinzufügen;
Antworten:
Nein, Sie müssen sie einzeln hinzufügen. Weitere Informationen finden Sie im Syntaxdiagramm oben in der ALTER TABLE-Dokumentation von SQLite :
Es gibt keine Schleife in der ADD
Verzweigung, daher ist keine Wiederholung zulässig.
Die Antwort von @mu ist zu kurz 'ist richtig. Hinzufügen einer optimierten Problemumgehung zum Hinzufügen mehrerer Spalten unter Verwendung der Vorteile von Transaktionen in SQL.
String alterTableQuery = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN ";
List<String> newColumns = ..// Your new columns
db.beginTransaction();
for (String column : newColumns){
db.execSQL(alterTableQuery + column + " VARCHAR");
}
db.setTransactionSuccessful();
db.endTransaction();
Ich hoffe das hilft jemandem.
Das einzige, was ich bisher verwenden kann, ist
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Beachten Sie, dass es gibt; absichtlich, damit die Abfrage als mehrere Zeilen gelesen wird.
Dann führe ich diese Abfrage aus und füge beim Ausführen mehrere Spalten hinzu ... Also nein, nicht in einer Zeile, aber ja in einer Abfrage ist es möglich.
Tabellentest ändern Spalte hinzufügen mycolumn1 Text; Tabellentest ändern Spalte hinzufügen mycolumn2 Text;
Verwenden Sie die oben definierte Abfrage
;
als Trennzeichen dient, muss als mehrere Anweisungen ausgeführt werden, und es spielt oft eine Rolle. Die andere Antwort hat bereits gezeigt, dass das, was das OP verlangt, jedoch unmöglich ist.