2012-06-25 5 views
0

Je veux insérer des milliers de enregistrement de la table, je suis maintenant en utilisantSQLite multiples INSERT dans iOS

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

requête pour enregistrement d'insertion, un par un, mais son prendre beaucoup de temps pour l'exécution,

maintenant, je veux insérer tous les enregistrements d'une requête ...

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

Mais cette requête ne fonctionne pas avec SqlLite, Pouvez-vous s'il vous plaît me donner quelques conseils pour résoudre ce problème

Merci,

+1

Cette requête est supportée maintenant. – mjb

Répondre

3

Please refer my answer here.

Il n'y a pas de requête en sqlite qui peut supporter votre structure, c'est ce que j'utilise pour insérer 1000s d'enregistrements en db. La performance est bonne. Vous pouvez essayer. :)

2

Insert into 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'

+0

référez-vous ce lien pour ur perusal – itechnician

+0

http://developer.appcelerator.com/question/104531/sqlite-multiple-insert – itechnician

+0

Aussi la requête ci-dessus fonctionne maintenant dans ios 7 – itechnician

1

Vous pouvez suivre ce link sur SO pour plus d'informations. Mais attention au nombre d'insertion que vous voulez faire, car il existe une limitation pour ce type d'utilisation (see here)

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