搜索

首页  >  问答  >  正文

MySQL NODEJS:创建数据库和关联表的完整指南

<p>我正在设置mysql/nodejs应用程序。</p> <p>我想在每次服务器重启时删除数据库,重新创建数据库,并创建表。</p> <p>如果我指定与数据库的连接:</p> <pre class="brush:js;toolbar:false;">let con = mysql.createConnection({ host: "localhost", user: "root", password: "pass", database: "my_db", }); </pre> <p>我可以创建表、索引、插入值,但只有第一次可以成功。每次以后都会告诉我已经创建了一切。</p> <p>另一方面,如果我在创建连接时不指定数据库,我可以删除数据库,创建新的数据库,但是当我尝试创建表时,会出现一个错误,说我没有与该表关联的数据库。</p> <p>有什么办法可以解决这个问题吗?</p>
P粉682987577P粉682987577476 天前537

全部回复(1)我来回复

  • P粉231112437

    P粉2311124372023-08-27 00:24:06

    你不需要在连接中使用数据库

    var pool  = mysql.createPool({
          connectionLimit : 10,
          host            : 'example.org',
          user            : 'bobby',
          password        : 'pass'
        });

    之后你可以创建数据库

    pool.getConnection(function(err, connection){
        if(err){
            return cb(err);
        }
        connection.query("CREATE DATABASE mydb", function(err, data){
            connection.release();
            cb(err, data);
        });
    });

    然后使用

    connection.changeUser({database : "mydb"});

    连接到新创建的数据库

    pool.getConnection(function(err, connection){
        if(err){
            return cb(err);
        }
        connection.changeUser({database : "mydb"});
      let createTodos = `create table if not exists mytable(
                              id int primary key auto_increment,
                              title varchar(255)not null,
                              testdata tinyint(1) not null default 0
                          )`;
    
      connection.query(createTodos, function(err, results, fields) {
        if (err) {
          console.log(err.message);
        };
    });

    这只是为了展示思路而将其拆分为单独的函数。

    回复
    0
  • 取消回复