sqlite alter table在单个语句中添加MULTIPLE列

时间:2011-05-30 06:08:27

标签: sql sqlite alter-table

是否可以在sqlite中的单个语句中更改表添加MULTIPLE列? 以下方法无效。

alter table test add column mycolumn1 text, add column mycolumn2 text;

4 个答案:

答案 0 :(得分:275)

不,你必须一次添加一个。请参阅SQLite's ALTER TABLE documentation顶部的语法图:

ALTER TABLE syntax

ADD分支中没有循环,因此不允许重复。

答案 1 :(得分:1)

到目前为止,我唯一可以使用的是

BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT

请注意,这里有;故意使查询被读取为多行。

然后我运行此查询,并在运行时添加多列...因此,不在一行中没有,但是在一个查询中是可能的。

答案 2 :(得分:0)

@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();

我希望这会对某人有所帮助。

答案 3 :(得分:-15)

alter table test add column mycolumn1 text; alter table test add column mycolumn2 text;

使用上面的redifined查询