¿Es posible modificar la tabla agregar columnas MÚLTIPLES en una sola declaración en sqlite? Lo siguiente no funcionaría.
alterar prueba de tabla agregar columna mycolumn1 texto, agregar columna mycolumn2 texto;
¿Es posible modificar la tabla agregar columnas MÚLTIPLES en una sola declaración en sqlite? Lo siguiente no funcionaría.
alterar prueba de tabla agregar columna mycolumn1 texto, agregar columna mycolumn2 texto;
Respuestas:
No, tienes que agregarlos uno a la vez. Vea el diagrama de sintaxis en la parte superior de la documentación ALTER TABLE de SQLite :
No hay bucle en la ADD
rama, por lo que no se permite la repetición.
La respuesta de @mu es demasiado corta 'es correcta. Como extra, agregar una solución alternativa optimizada para agregar múltiples columnas utilizando el beneficio de las transacciones en 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();
Espero que esto ayude a alguien.
Lo único que puedo usar hasta ahora es
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Tenga en cuenta que hay; con el propósito de hacer que la consulta se lea como varias líneas.
Luego ejecuto esta consulta y agrego varias columnas al ejecutar ... Entonces no, no en una línea, pero sí en una consulta es posible.
alter table test agregar columna mycolumn1 text; alterar prueba de tabla agregar columna mycolumn2 text;
use la consulta redifinada anterior
;
un separador debe ejecutarse como varias declaraciones, y a menudo es importante. Sin embargo, la otra respuesta ya demostró que lo que pide el OP es imposible.