0

我想在表中插入数千条记录,现在我正在使用

INSERT INTO myTable ("id", "values") VALUES ("1", "test")
INSERT INTO myTable ("id", "values") VALUES ("2", "test")
INSERT INTO myTable ("id", "values") VALUES ("3", "test")

一条一条查询插入记录,但执行时间长,

现在我想从一个查询中插入所有记录...

INSERT INTO myTable ("id", "values") VALUES
 ("1", "test"),
 ("2", "test"),
 ("3", "test"),
 .....
 .....
 ("n", "test")

但是这个查询不适用于 Sqllite,你能给我一些指导来解决这个问题吗

谢谢,

4

4 回答 4

3

请在此处参考我的回答

sqlite 中没有可以支持您的结构的查询,这是我用来在数据库中插入 1000 条记录的方法。性能很好。你可以试一试。:)

于 2012-06-25T10:46:44.770 回答
2

插入 table_name (col1,col2) SELECT 'R1.value1', 'R1.value2' UNION SELECT 'R2.value1', 'R2.value2' UNION SELECT 'R3.value1', 'R3.value2' UNION SELECT 'R4 .value1','R4.value2'

于 2012-06-25T11:35:18.323 回答
1

您可以在 SO 上点击此链接以获取更多信息。但要小心你想要插入的数量,因为这种用法有限制(见这里

于 2012-07-18T12:26:36.687 回答
0
INSERT INTO 'tablename'
  SELECT 'data1' AS 'column1', 'data2' AS 'column2'
  UNION SELECT 'data3', 'data4'
  UNION SELECT 'data5', 'data6'
  UNION SELECT 'data7', 'data8'

As a further note, sqlite only seems to support upto 500 such union selects per query so if you are trying to throw in more data than that you will need to break it up into 500 element blocks
于 2014-08-13T11:09:37.293 回答