Node.js MySQL テーブルの削除
1. テーブルの削除
DROP TABLE ステートメントを使用することで、既存のテーブルをデータベースから完全に削除することが可能です。
1.1 実装例:「customers」テーブルの削除
以下のコードは、指定したデータベースから「customers」テーブルを削除する例です。
let mysql = require('mysql');
// データベース接続設定
let con = mysql.createConnection({
host: "localhost",
user: "ユーザー名", // あなたのMySQLユーザー名
password: "パスワード", // あなたのMySQLパスワード
database: "mydb" // 操作対象のデータベース名
});
con.connect(function(err) {
if (err) throw err;
// テーブルを削除するSQL文
let sql = "DROP TABLE customers";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("テーブル削除完了");
});
});上記の内容を demo_db_drop_table.js というファイル名で保存し、実行してください。
demo_db_drop_table.js の実行
C:\Users\Your Name>node demo_db_drop_table.js実行に成功すると、ターミナルに以下の結果が表示されます。
Table deleted2. 存在する場合のみ削除する (Drop Only if Exist)
削除しようとしているテーブルがすでに削除されている場合や、何らかの理由で存在しない場合、そのまま DROP TABLE を実行するとエラーが発生します。これを回避するために、IF EXISTS キーワードを使用するのが一般的です。
2.1 実装例:安全なテーブル削除
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "ユーザー名",
password: "パスワード",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
// テーブルが存在する場合のみ削除を実行するSQL文
let sql = "DROP TABLE IF EXISTS customers";
con.query(sql, function (err, result) {
if (err) throw err;
// 結果オブジェクトを表示
console.log(result);
});
});上記の内容を demo_db_drop_table_if.js というファイル名で保存し、実行します。
demo_db_drop_table_if.js の実行
C:\Users\Your Name>node demo_db_drop_table_if.js2.2 結果オブジェクトの差異
実行時、テーブルが存在する場合と存在しない場合で、返却される結果オブジェクトの状態が異なります。
テーブルが存在した場合の結果オブジェクト:
{
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 2,
warningCount: 0, // 警告なし
message: '',
protocol41: true,
changedRows: 0
}テーブルが存在しなかった場合の結果オブジェクト:
{
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 2,
warningCount: 1, // 警告が1つ発生(テーブルが存在しないため)
message: '',
protocol41: true,
changedRows: 0
}このように、テーブルが存在しない場合はエラーになる代わりに warningCount プロパティが 1 に設定されます。この値をチェックすることで、プログラム側でより詳細な状況判断を行うことが可能になります。