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>
你不需要在连接中使用数据库
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); }; });这只是为了展示思路而将其拆分为单独的函数。