Czy można zmienić tabelę, dodając MULTIPLE kolumn w jednej instrukcji w sqlite? Poniższe nie zadziałały.
zmień test tabeli dodaj tekst kolumna moja kolumna1, dodaj tekst kolumna moja kolumna2;
Czy można zmienić tabelę, dodając MULTIPLE kolumn w jednej instrukcji w sqlite? Poniższe nie zadziałały.
zmień test tabeli dodaj tekst kolumna moja kolumna1, dodaj tekst kolumna moja kolumna2;
Odpowiedzi:
Nie, musisz dodawać je pojedynczo. Zobacz diagram składni u góry dokumentacji ALTER TABLE SQLite :
W ADD
gałęzi nie ma pętli, więc powtórzenia nie są dozwolone.
Odpowiedź z @mu jest za krótka ”jest poprawna. Dodatkowo dodanie zoptymalizowanego obejścia polegającego na dodawaniu wielu kolumn przy użyciu transakcji w języku 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();
Mam nadzieję, że to komuś pomoże.
Jedyne, co do tej pory możliwe, to
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Zauważ, że są; celowo, aby zapytanie było czytane jako wiele wierszy.
Następnie uruchamiam to zapytanie i otrzymuję wiele kolumn dodanych w trakcie ... Więc nie, nie w jednym wierszu, ale tak, w jednym zapytaniu jest to możliwe.
alter table test add column mycolumn1 text; alter table test add column mycolumn2 text;
użyj powyższego zredefiniowanego zapytania
;
co jest separatorem, musi być wykonywane jako wiele instrukcji i często ma to znaczenie. Druga odpowiedź już pokazała, że to, o co prosi PO, jest jednak niemożliwe.