我需要多次插入,但不知道出了什么问题。看到:
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);
});
我怎样才能解决这个问题?
最佳答案
您当前正在尝试在对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?
关于sqlite - 使用executeSql进行多重插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314248/