sqlite - 使用executeSql进行多重插入

标签 sqlite typescript ionic2

我需要多次插入,但不知道出了什么问题。看到:

 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/

相关文章:

ios - 我想使用 swiftdata (ryanfowler) 在 swift 2 中使用 sqlite 但有 120 个错误,我该怎么办?

java - 将存储在数据库中的拉丁 Unicode 字符转换为其对应的英文字母表

typescript - aws-cdk-lib vs @aws-cdk/core, @aws-cdk/aws-iam, ... 的目的是什么?

javascript - 如何从 json.stringify : ionic 读取特定值

javascript - 无法获取 View 中的对象属性

Angular 2/Ionic 2 未定义属性导致模板不刷新

sqlite - 如何仅将时间保存在sqlite数据库中?

node.js - WebStorm TypeScript 支持 node_modules

java - 如何使用 Angular 4 在 Spring Boot 中显示存储的图像?

android - 类型干扰失败。 Kotlin 和 Anko 中的预期类型不匹配 : required String found pair<String, String>