使用sqlite3和node.js插入Id字段自动递增

使用sqlite3和node.js插入Id字段自动递增,node.js,sqlite,Node.js,Sqlite,我正在尝试使用node.js插入sqlite3。我需要一个唯一的id字段,但我希望它自动生成,这样我就不必在插入表时插入它。 我正在连接并创建表ok,但是当我插入时,它希望我提供一个id字段。 以下是迄今为止的代码: var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('database/setup.db'); db.serialize(function() { db.run("CREATE TA

我正在尝试使用node.js插入sqlite3。我需要一个唯一的id字段,但我希望它自动生成,这样我就不必在插入表时插入它。 我正在连接并创建表ok,但是当我插入时,它希望我提供一个id字段。 以下是迄今为止的代码:

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('database/setup.db');


db.serialize(function() {
db.run("CREATE TABLE items (id INTEGER PRIMARY KEY, title TEXT, images TEXT, bid INTEGER, currentBidder TEXT)");

var stmt = db.prepare("INSERT INTO items VALUES(?,?,?,?)");
stmt.run('Title test 123', 'http://testshjshs', 100, 'shane'); 
stmt.finalize();

db.each("SELECT rowid, title FROM test", function(err, row) {
  console.log(row.rowid + ": " + row.title);
});

});

db.close();
这将返回以下错误

Error: SQLITE_ERROR: table items has 5 columns but 4 values were supplied
我理解它返回以下错误的原因,但如何设置它以使其自动插入字段,或者这是不可能的?
感谢

该表已声明有五列,因此当您只给INSERT四个值时,它不知道要忽略哪一列

或者明确说出要插入的列:

在项目(标题、图像、投标、当前投标人)中插入值(?、、?、?)
或为所有五列提供一个值(NULL表示自动递增):

插入项目值(空、、、、、、?)

如果希望表中有一个自动递增字段,请在创建表时省去
而不使用ROWID
命令,SQLite将在行名
ROWID
下为您创建一个自动索引


我想我自己已经找到了解决方案,我试图添加的id字段与sqlite自动添加的rowid基本相同。谢谢你,我会试试的。