0

我正在尝试使用sql.js https://github.com/sql-js/sql.js在 html 网页中创建一个包含以下列的表格。

<script src="sql.js"></script>
<script>
     var data;
     config = {
          locateFile: filename => `sql.js`
     }
</script>
<script>
initSqlJs(config).then(function (SQL) {
    var db = new SQL.Database();
    db.run(`CREATE TABLE notes (
        id              integer primary key,   /* 0 */
        guid            text not null,         /* 1 */
        mid             integer not null,      /* 2 */
        mod             integer not null,      /* 3 */
        usn             integer not null,      /* 4 */
        tags            text not null,         /* 5 */
        flds            text not null,         /* 6 */
        sfld            integer not null,      /* 7 */
        csum            integer not null,      /* 8 */
        flags           integer not null,      /* 9 */
        data            text not null          /* 10 */
    );`)

    db.run( `INSERT INTO notes (id, guid, mid, mod, usn, tags, flds, sfld, csum, flags, data)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, 0, '')`, 123,"abcdef", 12345, 56789, -1, "tags", "hi", 0);

});
</script>

但是出现以下错误

sql.js:89 Uncaught Error: NOT NULL constraint failed: notes.guid
    at c.handleError (sql.js:89)
    at a.step (sql.js:80)
    at c.run (sql.js:86)
    at <anonymous>:1:5

可以做些什么来消除错误?

谢谢

4

1 回答 1

2

可能是因为您提供的值run应该在单个数组中,而不是作为多个参数传递。

<script src="sql.js"></script>
<script>
     var data;
     config = {
          locateFile: filename => `sql.js`
     }
</script>
<script>
initSqlJs(config).then(function (SQL) {
    var db = new SQL.Database();
    db.run(`CREATE TABLE notes (
        id              integer primary key,   /* 0 */
        guid            text not null,         /* 1 */
        mid             integer not null,      /* 2 */
        mod             integer not null,      /* 3 */
        usn             integer not null,      /* 4 */
        tags            text not null,         /* 5 */
        flds            text not null,         /* 6 */
        sfld            integer not null,      /* 7 */
        csum            integer not null,      /* 8 */
        flags           integer not null,      /* 9 */
        data            text not null          /* 10 */
    );`)

    db.run(
        `INSERT INTO notes (id, guid, mid, mod, usn, tags, flds, sfld, csum, flags, data)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, 0, '')`, 
        [123,"abcdef", 12345, 56789, -1, "tags", "hi", 0]
    );
});
</script>
于 2020-11-05T17:41:23.820 回答