MySQLビューの定義を削除せずに変更する方法(ALTER VIEWの使い方)
MySQLでは、ALTER VIEWステートメントを使用することで、ビューを削除(DROP)することなく定義を変更できます。既存のビューを修正したい場合、一度削除して作り直す必要はなく、ALTER VIEW文だけで簡単に更新できるのが便利なポイントです。
ALTER VIEWの基本構文
ALTER VIEW ビュー名 AS SELECT カラム1, カラム2, … FROM テーブル名 WHERE 条件;
構文はCREATE VIEWとほぼ同じで、「ALTER」キーワードを使う点だけが異なります。新しいSELECT文を指定することで、ビューの定義がその内容に置き換えられます。
具体例:カラムを追加してビューを変更する
ここでは、「Info」という名前のビューの定義を変更してみましょう。まず、現在のビューの状態を確認します。
mysql> Select * from Info; +------+---------+------------+ | Id | Name | Subject | +------+---------+------------+ | 101 | YashPal | History | | 105 | Gaurav | Literature | | 125 | Raman | Computers | | 130 | Ram | Computers | +------+---------+------------+ 4 rows in set (0.01 sec)
このビューには「Id」「Name」「Subject」の3つのカラムがあります。ここに新しく「ADDRESS」カラムを追加したい場合、ALTER VIEWステートメントを次のように実行します。
mysql> Alter view info AS SELECT ID, NAME, SUBJECT, ADDRESS from student_info; Query OK, 0 rows affected (0.07 sec) mysql> Select * from info; +------+---------+------------+------------+ | ID | NAME | SUBJECT | ADDRESS | +------+---------+------------+------------+ | 101 | YashPal | History | Amritsar | | 105 | Gaurav | Literature | Chandigarh | | 125 | Raman | Computers | Shimla | | 130 | Ram | Computers | Jhansi | +------+---------+------------+------------+ 4 rows in set (0.00 sec)
上記の結果セットを見ると、ビュー「Info」にADDRESSカラムが正常に追加されていることがわかります。このように、ALTER VIEWを使えばビューを削除することなく、柔軟に定義を変更できます。
まとめ
- ビューの定義変更にはALTER VIEWステートメントを使用する
- DROP VIEWで削除してから再作成する必要はない
- 構文はCREATE VIEWとほぼ同じで、SELECT文を新しい定義として指定するだけ
-
MySQLで設定したインデックスを確認・表示する方法【SHOW INDEXコマンド】
MySQLで作成済みのインデックスを確認したい場合は、SHOWコマンドを使用します。この記事では、実際にテーブルとインデックスを作成しながら、インデックス情報を表示する手順をわかりやすく解説します。インデックスを表示する基本構文テーブルに設定されたインデックスの一覧を取得するには、以下の構文を使用します。show index from テーブル名;サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。以下の例では、自動採番される主キー「Id」と、姓名を格納するカラムを持つテーブルを定義しています。mysql> create table DemoTable (
-
MySQLでカスケード(テーブル定義)を表示する方法|SHOW CREATE TABLEの使い方
MySQLでテーブルの「カスケード」、つまりテーブルを作成した際のCREATE TABLE文の内容を確認したい場合は、SHOW CREATE TABLEステートメントを使用します。このコマンドを実行すると、カラムのデータ型、主キー、ユニークキー、インデックス、ストレージエンジン、文字セットといったテーブルの完全な定義を一度に確認できます。 手順1:サンプルテーブルを作成する まず、動作を確認するためのデモテーブルを作成しましょう。以下のSQLを実行します。 mysql> create table DemoTable1378 -> ( -> Id int N