suchen

Heim  >  Fragen und Antworten  >  Hauptteil

MySQL NODEJS: Eine vollständige Anleitung zum Erstellen von Datenbanken und zugehörigen Tabellen

<p>Ich richte eine MySQL/NodeJS-Anwendung ein. </p> <p>Ich möchte die Datenbank löschen, neu erstellen und die Tabellen bei jedem Neustart des Servers erstellen. </p> <p>Wenn ich eine Verbindung zur Datenbank spezifiziere: </p> <pre class="brush:js;toolbar:false;">let con = mysql.createConnection({ Host: "localhost", Benutzer: "root", Passwort: "pass", Datenbank: "my_db", }); </pre> <p>Ich kann Tabellen und Indizes erstellen und Werte einfügen, aber nur beim ersten Mal. Jedes Mal später sagt es mir, dass alles erschaffen wurde. </p> <p>Andererseits, wenn ich die Datenbank beim Erstellen der Verbindung nicht spezifiziere, kann ich die Datenbank löschen und eine neue erstellen, aber wenn ich versuche, die Tabelle zu erstellen, erhalte ich eine Fehlermeldung, die besagt, dass ich dies nicht tue. Der Tabelle ist keine Datenbank zugeordnet. </p> <p>Gibt es eine Möglichkeit, dieses Problem zu lösen? </p>
P粉682987577P粉682987577476 Tage vor538

Antworte allen(1)Ich werde antworten

  • 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);
        };
    });

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

    Antwort
    0
  • StornierenAntwort