2015-07-15 4 views
0

Когда я вставляю более 500 записей в базу данных sqlite, возникает ошибка «слишком много терминов в соединении SELECT». Я прочитал информацию о sqlite limitкак вставить много записей

Теперь я хочу вставить более 1000 (скажем, 2000 продуктов) записей в базу данных. Может ли кто-нибудь предложить, как написать запрос, чтобы вставить более 1000 записей.

Вот запрос вставки я использовал:

INSERT INTO Product 
    SELECT 
     '4886229673836544' AS productId, 
     'Pen1' AS productName, 
     '10' As sellingPrice 
    UNION SELECT 
     '4780676557570048', 
     'Pen2', '10'........... 
    UNION SELECT 
     '4562973255270400', 
     'Pen1000', 
     '10' 

ответ

0

Создать параметризованный запрос вроде следующего:

INSERT INTO Products 
VALUES (@ProductId, @ProductName, @SellingPrice) 

и использовать его следующим образом (псевдокод):

create statement 
add parameter definitions to parameter collection 
prepare statement 
start transaction 
for each row you want to insert 
    set parameter values 
    execute statement 

commit transaction 
+0

@lopez: почему вы используете @? может немного объяснить об этом. function insertRecord (query) { var deferred = $ q.defer(); db.transaction (функция (ТХ) { , если (запрос) { tx.executeSql (запрос, [], функция() { console.log ('вставить успешный'); deferred.resolve();} ) } else { Отложенный_резы(); } }); return offfer.promise; }; –

+0

@YogeshN Вы отметили вопрос "android-sqlite". Почему вы показываете код JavaScript? –

+0

@cl, но моя проблема была в sqlite. Я использую cordova для запуска в качестве приложения для Android, поэтому я добавил тег android-sqlite. –

Смежные вопросы