Преобразование SQLite3 из базы данных MySQL [Вставить проблему] - PullRequest
0 голосов
/ 25 августа 2011


Я пытаюсь выполнить файл SQL (файл дампа из базы данных MySQL) внутри базы данных SQLite3. Проблема, с которой я сталкиваюсь, заключается в том, что в файле дампа многократная вставка, которая не обрабатывается 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 голосов
/ 25 августа 2011

Здесь ответили: Можно ли одновременно вставлять несколько строк в базу данных 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);

Это можно сделать с помощью вашего любимого текстового редактора, поддерживающего 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 ...

Но лично я думаю, что у вас будет меньше работы с первым вариантом Iпредставил.

...