0


我正在尝试在 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 中进行多次插入吗?我的数据库很大,上面的例子只是为了说明问题。

4

1 回答 1

0

此处已对此进行了回答:是否可以在 SQLite 数据库中一次插入多行?

显然,这种语法在 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);

您应该能够使用您最喜欢的支持正则表达式的文本编辑器来做到这一点。

更新

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

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 ...

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

于 2011-08-25T15:12:45.640 回答