2011-08-25 77 views
0


我試圖在SQLite3數據庫內執行SQL文件(從MySQL數據庫轉儲文件)。 我面臨的問題是轉儲文件有一個不能被SQLite3處理的多重插入。 下面是一個例子:
從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中插入倍數? 我的數據庫很大,上面的例子只是爲了說明問題。

+0

爲什麼你想要將一個「很大」的數據庫從MySQL移動到Sqlite? – NullUserException

+0

是的,這是有原因的。 這不是那麼大,但無論如何...我正在開發移動平臺,到目前爲止,SQLite3是他們使用的數據庫:) – JLuiz

+0

那麼,只是想確保。 Sqlite並非真正用於處理大量數據和/或併發用戶的應用程序。 – NullUserException

回答

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); 

你應該能夠做到這一點與自己喜歡的正則表達式能夠文本編輯器。

更新

你也可以嘗試將其轉換成這種格式:

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

但就個人而言,我認爲你必須與我提出的第一個選項較少的工作。

+0

謝謝你,我要去做。 – JLuiz