使用 NodeJS 删除 MySQL 表


您可以使用 Node 中的 "DROP TABLE" 语句从 MySql 数据库中删除现有表。有时,我们需要删除整个表,尽管在企业中,建议将不再使用的表归档而不是删除它们。

删除表时,我们有两种情况:

  • 如果表存在则删除,否则抛出错误

  • 无论表是否存在都删除表。

我们将在这里讨论这两种情况。

在继续之前,请检查以下步骤是否已执行:

  • mkdir mysql-test

  • cd mysql-test

  • npm init -y

  • npm install mysql

以上步骤用于在项目文件夹中安装 Node - mysql 依赖项。

删除表

  • 要删除表,您需要首先创建一个 app.js 文件。

  • 现在将以下代码复制粘贴到 app.js 文件中

  • 使用以下命令运行代码

>> node app.js

示例 1

var mysql = require('mysql');
   var con = mysql.createConnection({
      host: "localhost",
      user: "yourusername",
      password: "yourpassword",
      database: "mydb"
   });

con.connect(function(err) {
   if (err) throw err;
   //Delete the "customers" table:
   var sql = "DROP TABLE customers";
   con.query(sql, function (err, result) {
      if (err) throw err;
      console.log("Table deleted");
      console.log(result);
   });
});

以上代码段将抛出错误,因为我们没有名为 customers 的表。我们有一个名为 students 的表。

输出

Error: ER_BAD_TABLE_ERROR: Unknown table 'bo.customers'

示例 2

var mysql = require('mysql');
var con = mysql.createConnection({
   host: "localhost",
   user: "yourusername",
   password: "yourpassword",
   database: "mydb"
});

con.connect(function(err) {
   if (err) throw err;
   //Delete the "students" table:
   var sql = "DROP TABLE students";
   con.query(sql, function (err, result) {
      if (err) throw err;
      console.log("Table deleted");
      console.log(result);
   });
});

输出

由于表存在,我们将得到以下输出。

Table deleted
OkPacket {
   fieldCount: 0,
   affectedRows: 0,
   insertId: 0,
   serverStatus: 2,
   warningCount: 0,    // If table does exist, then the count = 0
   message: '',
   protocol41: true,
   changedRows: 0
}

如果存在则删除表

那么,我们如何克服上述情况呢?好吧,在上述情况下,我们可以使用 "If Exists" 子句。这只会从数据库中删除一个表(如果它存在),否则它不会抛出错误,而是会给出警告计数。

  • 将以下代码复制粘贴到 app.js 文件中

  • 使用以下命令运行代码

>> node app.js

示例

var mysql = require('mysql');
var con = mysql.createConnection({
   host: "localhost",
   user: "yourusername",
   password: "yourpassword",
   database: "mydb"
});

con.connect(function(err) {
   if (err) throw err;
   //Delete the "customers" table:
   var sql = "DROP TABLE IF EXISTS customers";
   con.query(sql, function (err, result) {
      if (err) throw err;
      console.log("Table deleted");
      console.log(result);
   });
});

输出

Table deleted
OkPacket {
   fieldCount: 0,
   affectedRows: 0,
   insertId: 0,
   serverStatus: 2,
   warningCount: 1, // If table does not exist, then the count > 0
   message: '',
   protocol41: true,
   changedRows: 0
}

更新于:2021年4月27日

544 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告