LoginSignup
1
0

More than 1 year has passed since last update.

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

Posted at

本記事について

今後の開発の参考になればと思い、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になっていない。
 スクリーンショット 2022-03-28 22.52.05.png!

一度テーブルを削除した後、
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 [テーブル名];

▼結果
スクリーンショット 2022-03-29 0.53.09.png

成功🍻

役に立った構文_その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);

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0