É possível alterar a tabela e adicionar várias colunas em uma única instrução no sqlite? O seguinte não funcionaria.
alterar teste da tabela adicionar texto à coluna mycolumn1, adicionar texto à coluna mycolumn2;
É possível alterar a tabela e adicionar várias colunas em uma única instrução no sqlite? O seguinte não funcionaria.
alterar teste da tabela adicionar texto à coluna mycolumn1, adicionar texto à coluna mycolumn2;
Respostas:
Não, você deve adicioná-los um de cada vez. Veja o diagrama de sintaxe na parte superior da documentação ALTER TABLE do SQLite :
Não há loop no ADD
ramo, portanto, nenhuma repetição é permitida.
A resposta de @mu é muito curta 'está certa. Como um extra, adicionar uma solução alternativa otimizada para adicionar várias colunas usando o benefício de transações no 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 isso ajude alguém.
A única coisa possível até agora que eu 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
Note que existem; de propósito para que a consulta seja lida como várias linhas.
Então eu executo essa consulta e recebo várias colunas adicionadas durante a execução ... Então não, não em uma linha, mas sim em uma consulta é possível.
alterar tabela teste adicionar coluna texto da minha coluna1; alterar teste da tabela adicionar texto da coluna mycolumn2;
use a consulta redefinida acima
;
um separador deve ser executada como várias instruções, e isso geralmente importa. A outra resposta já demonstrou que o que o OP está pedindo é impossível, no entanto.