为什么在 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>
我正在尝试使用 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>