本記事について
今後の開発の参考になればと思い、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);
以上