È possibile modificare la tabella aggiungere colonne MULTIPLE in una singola istruzione in sqlite? Quanto segue non funzionerebbe.
modifica tabella test aggiungi colonna mycolumn1 testo, aggiungi colonna mycolumn2 testo;
È possibile modificare la tabella aggiungere colonne MULTIPLE in una singola istruzione in sqlite? Quanto segue non funzionerebbe.
modifica tabella test aggiungi colonna mycolumn1 testo, aggiungi colonna mycolumn2 testo;
Risposte:
No, devi aggiungerli uno alla volta. Vedi il diagramma di sintassi nella parte superiore della documentazione ALTER TABLE di SQLite :
Non c'è loop nel ADD
ramo quindi non è consentita alcuna ripetizione.
La risposta di @mu è troppo breve 'è giusta. Come extra, l'aggiunta di una soluzione alternativa ottimizzata per l'aggiunta di più colonne utilizzando il vantaggio delle transazioni 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();
Spero che questo possa aiutare qualcuno.
L'unica cosa finora possibile che uso è
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
Si noti che ci sono; apposta per far leggere la query come più righe.
Quindi eseguo questa query e ottengo più colonne aggiunte in esecuzione ... Quindi no non in una riga, ma sì in una query è possibile.
modifica tabella test aggiungi colonna mycolumn1 testo; modifica tabella test aggiungi colonna mycolumn2 testo;
utilizzare la query ridimensionata sopra
;
come separatore deve essere eseguita come più istruzioni e spesso importa. L'altra risposta ha già dimostrato che ciò che l'OP chiede è impossibile, tuttavia.