使用 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 }
广告