2017-02-18 2 views
0

Мне нужно сделать несколько вставок, и я не знаю, что не так. См .:Вставка мультивников с использованием executeSql

db.openDatabase({ 
     name: "data.db", 
     location: "default" 
    }).then(() => { 
     db.executeSql(
     +"INSERT INTO check_item (name) VALUES ('Pneus - calibragem'); " 
     +"INSERT INTO check_item (name) VALUES ('Pneus – banda de rodagem'); " 
     +"INSERT INTO check_item (name) VALUES ('Nivel do oleo'); " 
     +"INSERT INTO check_item (name) VALUES ('Luzes dianteiras'); " 
     +"INSERT INTO check_item (name) VALUES ('Luzes traseiras'); " 
     +"INSERT INTO check_item (name) VALUES ('Triangulo de sinalizacao'); " 
     +"INSERT INTO check_item (name) VALUES ('Chave de roda'); " 
     +"INSERT INTO check_item (name) VALUES ('Documentacao do veiculo'); ", {}).then((data) => { 
      console.log("TABLE CREATED: ", data); 
     }, (error) => { 
      console.error("Unable to execute sql teste", error); 

     }) 
    }, (error) => { 
     console.error("Unable to open database", error); 
    }); 

Как это исправить?

+0

И что такое проблема? – rkosegi

+0

@rkosegi Не вставляется в банк. – Viana

ответ

1

В настоящее время вы пытаетесь выполнить несколько операторов вставки в течение одного звонка до executeSql(). Синтаксис для вставки нескольких записей в одном операторе является:

INSERT INTO check_item (name) 
VALUES ('Pneus - calibragem'), 
     ('Pneus – banda de rodagem'), 
     ('Nivel do oleo'), 
     ... 
     ('Documentacao do veiculo'); 

Если вы хотите, чтобы предотвратить возможность вставки имени, которое уже существует, самый простой способ сделать это, возможно, добавить уникальное ограничение на name колонка. Хотя это не возможно сделать это в SQLite, не воссоздавая таблицу, мы можем добавить уникальный индекс, чтобы получить тот же эффект:

CREATE UNIQUE INDEX name_index ON check_item (name); 

Дальнейшее чтение: How to add unique constraint in already made table in sqlite ios?

+0

Спасибо u. Я хотел бы вставить только в том случае, если запись отсутствует. Как я могу это сделать? – Viana

+0

Итак, во время создания таблицы я должен указать «имя» как уникальное, не так ли? – Viana

+1

Да, добавьте эту строку в оператор 'CREATE TABLE':' CONSTRAINT name_constraint UNIQUE (name) ' –

0

INSERT INTO имя_таблицы (а, b, c) ЗНАЧЕНИЯ (1,2,3), (4,5,6), (7,8,9);

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