Можно ли изменить таблицу добавления столбцов MULTIPLE в одном выражении в sqlite? Следующее не будет работать.
изменить тест таблицы добавить столбец mycolumn1 текст, добавить столбец mycolumn2 текст;
Можно ли изменить таблицу добавления столбцов MULTIPLE в одном выражении в sqlite? Следующее не будет работать.
изменить тест таблицы добавить столбец mycolumn1 текст, добавить столбец mycolumn2 текст;
Ответы:
Нет, вы должны добавлять их по одному. Смотрите синтаксическую диаграмму в верхней части документации ALTER TABLE SQLite :
Там нет петли в ADD
ветке, поэтому повторение не допускается.
Ответ от @mu слишком короткий - правильный. В качестве дополнения, добавление оптимизированного обходного пути для добавления нескольких столбцов, используя преимущества транзакций в 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();
Надеюсь, это кому-нибудь поможет.
Единственное, что я могу пока использовать, это
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Обратите внимание, что есть; с целью сделать запрос читаемым в несколько строк.
Затем я запускаю этот запрос и добавляю несколько столбцов при запуске ... Так что нет, не в одной строке, но да, в одном запросе это возможно.
изменить тест таблицы добавить столбец mycolumn1 текст; изменить тест таблицы добавить столбец mycolumn2 текст;
используйте приведенный выше запрос
;
что имеет разделитель, должно выполняться как несколько операторов, и это часто имеет значение. Другой ответ уже продемонстрировал, что то, о чем просит ФП, невозможно.