1

我尝试将数据插入本地数据库 sqlite。这是可能的。我能做到 。但是我每次都必须创建一个新表。我尝试在不创建新表的情况下做到这一点......

我已经将数据插入到表中,但每次都必须创建一个表。

     $("#ecris").click( function() 
        {          

              var fs = require("fs");         
              var sql = require("./js/sql.js"); 
              var db = new sql.Database();                   
              db.run("CREATE TABLE test (col1, col2);");

              db.run("INSERT INTO test (col1, col2) VALUES ('8','4564')"); 
;  
              var data = db.export();

              var buffer = new Buffer(data);
              fs.writeFileSync("bd/mybd.sqlite", buffer );
              db.close();   



        });

我只需要插入现有表...非常感谢

4

2 回答 2

1

终于找到谢谢你的帮助!

$("#ecris").click( function() 
{          

     var fs =  require('fs');         
     var sql = require("./js/sql.js");      
     var filebuffer = fs.readFileSync("bd/mybd.sqlite"); 
     var db = new sql.Database(filebuffer);
      db.run("INSERT INTO test (col1, col2) VALUES ('gerald','coucou')");
     var data = db.export();
     var buffer = new Buffer(data);
     fs.writeFileSync("bd/mybd.sqlite", buffer );
     db.close();

});
于 2019-01-04T10:08:58.853 回答
0

为什么每次都创建和写入同一个文件,

而是检查文件是否已经存在,然后重新打开您的数据库文件“bd/mybd.sqlite”并直接将数据插入表中,您可以在网上轻松获取语法。

更新以从磁盘读取数据库:

   var fs = require('fs');
   var SQL = require('sql.js');
   var filebuffer = fs.readFileSync('test.sqlite');

  // Load the db
  var db = new SQL.Database(filebuffer);

参考:https ://github.com/kripken/sql.js/blob/master/README.md

于 2018-12-31T10:22:37.753 回答