在sqlite中,是否可以通过单个语句来更改表并添加多列?以下语句是无效的。
alter table test add column mycolumn1 text, add column mycolumn2 text;
在sqlite中,是否可以通过单个语句来更改表并添加多列?以下语句是无效的。
alter table test add column mycolumn1 text, add column mycolumn2 text;
到目前为止,我能使用的唯一方法是:
BEGIN TRANSACTION;
ALTER TABLE tblName ADD ColumnNameA TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameB TEXT DEFAULT '';
ALTER TABLE tblName ADD ColumnNameC TEXT DEFAULT '';
COMMIT
请注意:查询中有分号是有意为之的,以便使查询可以作为多行读取。
然后我运行此查询,并在运行时添加了多个列... 所以不是一行,但是在一个查询中是可能的。
migrate
方法已在事务中调用,因此采用此方法的好处有限。 - NicolasString 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();
我希望这能对某人有所帮助。
修改表test,添加列mycolumn1 text; 修改表test,添加列mycolumn2 text;
使用上述重新定义的查询
;
作为分隔符的东西都必须被执行为多个语句,并且通常它确实很重要。不过,另一个答案已经证明了 OP 所要求的是不可能的。 - o11c