Я создаю электронное приложение и использую sqlite3 для локального хранения и извлечения данных.
Проблема - есть две таблицы table1 и table2, сначала мне нужно вставить запись в table1, а затем захотеть используйте insertId table1 в table2 для построения отношения
Неудачный код -
var name = document.getElementsById("name").value;
var date = document.getElementsById("date").value;
var type = document.getElementsById("type").value;
var db = new sqlite3.Database('././user.db');
db.serialize(function() {
var insertId = 0;
db.run("INSERT INTO table1 (name,date) VALUES ('" + name + "','" + date + "')", function(err) {
if (err) {
return console.log(err.message);
}
// get the last insert id
insertId = `${this.lastID}`;
console.log(insertId);
});
var stmt = db.prepare("INSERT INTO applicants (patentId,type) VALUES ('" + insertId + "','" + type + "')");
stmt.run();
stmt.finalize();
db.close();
//all database Queries and system closed here
});
Когда я запускаю этот код, тогда 0 вставляется в table2 как table1ID и реальный вставленный ID напечатано в журнале консоли после этого я думаю, что это какая-то асинхронная природа, я новичок в JavaScript.