从MySQL数据库转换SQLite3 [插入问题]

时间:2011-08-25 15:02:44

标签: mysql sql sqlite multiple-insert


我试图在SQLite3数据库中执行SQL文件(来自MySQL数据库的转储文件)。 我面临的问题是转储文件有多个插入,SQLite3不处理。 这是一个例子:

INSERT INTO resultset_values (id, o_id, points, descrip, created, createdby, up, upby) 
VALUES 
(1,1,1,'string1','2011-03-29 11:21:00','user1',NULL,NULL),
(2,1,2,'string2','2011-03-29 11:21:00','user1',NULL,NULL);

这在MySQL中运行良好,但我无法在SQLite3中运行。 有人知道如何在SQLite3中制作多次插入吗? 我的数据库非常大,上面的示例仅用于说明问题。

1 个答案:

答案 0 :(得分:0)

这已在此处回答:Is it possible to insert multiple rows at a time in an SQLite database?

显然,this syntax is not supported in SQLite

你必须转

INSERT INTO resultset_values (id, o_id, points, descrip, created, createdby, up, upby) 
VALUES 
(1,1,1,'string1','2011-03-29 11:21:00','user1',NULL,NULL),
(2,1,2,'string2','2011-03-29 11:21:00','user1',NULL,NULL);

成:

INSERT INTO resultset_values (id, o_id, points, descrip, created, createdby, up, upby) 
VALUES 
(1,1,1,'string1','2011-03-29 11:21:00','user1',NULL,NULL);
INSERT INTO resultset_values (id, o_id, points, descrip, created, createdby, up, upby) 
VALUES 
(2,1,2,'string2','2011-03-29 11:21:00','user1',NULL,NULL);

您应该能够使用自己喜欢的Regex文本编辑器。

<强>更新

您也可以尝试将其转换为以下格式:

INSERT INTO resultset_values
      SELECT 1,1,1,'string1','2011-03-29 11:21:00','user1',NULL,NULL
UNION SELECT 2,1,2,'string2','2011-03-29 11:21:00','user1',NULL,NULL
UNION ...

但就个人而言,我认为你提出的第一个选项的工作量较少。