为什么在 sql.js 中出现 'NOT NULL constraint failed' 错误?

Why getting 'NOT NULL constraint failed' error in sql.js?

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

<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

如何消除错误?

谢谢

可能是因为您提供给 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>