【講義20.デプロイ】Mysql workbenchを使うときに役に立った構文


本記事について

今後の開発の参考になればと思い、Mysql workbenchを使用した際の実体験をまとめたもの。

Mysql workbenchについて

データベースアーキテクト、開発者、DBAのための統合ビジュアルツールです。
データ・モデリング、SQL 開発、およびサーバー設定、ユーザー管理、バックアップなどの
包括的な管理ツールを提供します。Windows、Linux、Mac OS Xで利用可能です。
(公式:https://www.mysql.com/jp/products/workbench/)

Mysql workbenchを使用した背景

Herokuを使用したDeployを行う際、データベースとしてMysql workbenchを使用。
ローカルはXAMPP×phpmyadmin、phpmyadminからダウンロードしたsqlファイルを
Mysql workbenchにインポートして使用した。

役に立った構文_その1

phpmyadminからダウンロードしたsqlファイルのインポートを行なった際、
1つのテーブルにidとuser_idというカラムが存在していたことが原因で、idのPrimaryキーが外れてしまった。

最初にMysql workbenchの画面で以下の構文を実行。
該当のテーブル、カラムにPrimarykeyが存在している確認。

show columns from [テーブル名];

Keyの列を確認するがPrimarykeyになっていない。
 !

一度テーブルを削除した後、
idのデータ型指定の後ろにAUTO_INCREMENT NOT NULL primary keyをつけることで解決した。

一旦テーブル削除

DROP TABLE [テーブル名];

該当するカラムをPrimarykeyへ変更

CREATE TABLE [テーブル名] (
  id int(12) AUTO_INCREMENT NOT NULL primary key,
  user_id int(12) NOT NULL,
    ~中略~
  is_deleted int(1) NOT NULL,
  created_at datetime NOT NULL,
  updated_at datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

Primarykeyに変わっているか確認する...

show columns from [テーブル名];

▼結果

成功🍻

役に立った構文_その2

phpmyadminからダウンロードしたデータベースが最新ではなかった!
再度、phpmyadminからダウンロードを試みるも、XAMPPが壊れる...GitHubにもbackupなし...
...最新でないとはいえ、Mysql workbench側でカラム追加したら良いか!と開き直る

既存カラムの後ろ(右隣)に新規カラム追加

ALTER TABLE テーブル名 ADD 新規カラム名 型情報 AFTER 既存カラム名;

先頭(一番左)にカラム追加

ALTER TABLE テーブル名 ADD 新規カラム名 型情報 FIRST;

複数のカラムを一括で追加

ALTER TABLE テーブル名 ADD (新規カラム名1 型情報, 新規カラム名2 型情報, ...);

例:「user」テーブルに、「mail」と「tel」の2つを追加する場合は以下のようなクエリになる。

ALTER TABLE user ADD (mail text, tel tinytext);

以上