sqlite alter table add MULTIPLE columns in a single statement sqlite alter table add MULTIPLE columns in a single statement sqlite sqlite

sqlite alter table add MULTIPLE columns in a single statement


No, you have to add them one at a time. See the syntax diagram at the top of SQLite's ALTER TABLE documentation:

ALTER TABLE syntax

There's no loop in the ADD branch so no repetition is allowed.


The only thing so far possible that I use is

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 that there are ; on purpose to make the query be read as multiple lines.

Then I run this query and get multiple columns added in on run... So no not in one line, but yes in one query its possible.


The answer from @mu is too short' is right. As an extra, adding an optimized workaround for adding multiple columns using the benefit of transactions in SQL.

String alterTableQuery = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN ";List<String> newColumns = ..// Your new columnsdb.beginTransaction();for (String column : newColumns){    db.execSQL(alterTableQuery + column +  " VARCHAR");}db.setTransactionSuccessful();db.endTransaction();

I hope this will help someone.