我正在尝试在一个查询中仅将两行值插入到两列中,遵循这个装饰得很多的问题Inserting multiple rows in a single SQL query?,但是我的代码
DatabaseHelper helper = new DatabaseHelper(RegisterActivity.this);
database = helper.getWritableDatabase();
database.query("usersdata", fields, null, null, null, null, null);
database.rawQuery("INSERT INTO usersdata ( userName, userType ) VALUES " + "( '" + firstTime + "' , 'flag' ) , ( '" + name + "' , 'Owner' )", null);
database.close();
我收到错误
android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO usersdata ( userName, userType ) VALUES ( 'hasBeenRegistered' , 'flag' ) , ( 'kwish' , 'Owner' )
似乎我的报价不是问题,因为它说:接近","其中","我有一个问题,我不知道......我还试过在引号之后没有空格 - 这不重要。任何有关这方面的帮助将不胜感激! TIA(现在看到我不需要连接VALUES和(但这也不重要!)
答案 0 :(得分:1)
根据documentation,Android附带SQLite 3.4.0。在SQLite 3.7.11之前,不支持您想要做的事情。
你必须像这样重写(来自answer):
INSERT INTO 'tablename'
SELECT 'data1' AS 'column1', 'data2' AS 'column2'
UNION SELECT 'data3', 'data4'
UNION SELECT 'data5', 'data6'
UNION SELECT 'data7', 'data8'
答案 1 :(得分:0)
这里只是一个猜测,但您引用的帖子具体是关于SQLServer。 SQLite很可能不支持单个查询中的多行插入 - 或者可能不是相同的语法。看看这里 - Is it possible to insert multiple rows at a time in an SQLite database?