SQLite3,结合多个INSERT语句?

时间:2010-12-08 15:24:36

标签: android database sqlite

我确信必须有一个简单的答案,但我用Google搜索的所有内容似乎都使事情变得复杂,现在我不太确定。

所以这就是我现在需要做的就是将记录插入到我的表中

INSERT INTO CAT_BUD_TAB (_id, CAT_ITEM, IN_OUT) VALUES (null, 'Student Loan', 'out');
INSERT INTO CAT_BUD_TAB (_id, CAT_ITEM, IN_OUT) VALUES (null, 'Food', 'in');

我认为必须有一个更短的方式,比如说......

INSERT INTO CAT_BUD_TAB (_id, CAT_ITEM, IN_OUT) VALUES (null, 'Student Loan', 'out'),(null, 'Food', 'in');

我正在使用SQLite,因为我正在为Android开发,但我很确定它是SQLite3,这意味着像上面的INSERTS应该是可能的吗?我该怎么做?

5 个答案:

答案 0 :(得分:3)

尝试使用声明如下:

INSERT INTO table(field1,field2) SELECT "value1","value2" UNION SELECT "value1","value2" ...

答案 1 :(得分:2)

这是官方参考:

http://www.sqlite.org/lang_insert.html

然而,似乎有可能:

insert into myTable (col1,col2) 
     select aValue as col1,anotherValue as col2 
     union select moreValue,evenMoreValue 
     union...

另外,请考虑使用以下内容:

begin transaction;
insert into ...;
insert into ...;
etc.
commit;

答案 2 :(得分:1)

我不知道组合多个插件。我认为这是不可能的!

如果要在很短的时间内插入长列表,请使用事务和预准备语句。

你需要什么?

答案 3 :(得分:1)

SQLite理解的SQL语法文档似乎表明每个VALUES语句只能使用一组INSERT

http://www.sqlite.org/lang_insert.html

答案 4 :(得分:0)

简单的方法是将value1和value2存储在数组中,并使用像

这样的for循环
for(int i = 0;i< value1.length,i++)
{
INSERT INTO CAT_BUD_TAB (_id, CAT_ITEM, IN_OUT) VALUES (null, 'value1[i]', 'value2[i]');
}