ALTER TABLE 構文

メモ:  Category:mysql

ALTER TABLE を使用すると表の定義を変更することができます。

ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification ...]

alter_specification:
        ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
  or    ADD [COLUMN] (create_definition, create_definition,...)
  or    ADD INDEX [index_name] (index_col_name,...)
  or    ADD PRIMARY KEY (index_col_name,...)
  or    ADD UNIQUE [index_name] (index_col_name,...)
  or    ADD FULLTEXT [index_name] (index_col_name,...)
  or    ADD [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
            [reference_definition]
  or    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  or    CHANGE [COLUMN] old_col_name create_definition
               [FIRST | AFTER column_name]
  or    MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
  or    DROP [COLUMN] col_name
  or    DROP PRIMARY KEY
  or    DROP INDEX index_name
  or    DISABLE KEYS
  or    ENABLE KEYS
  or    RENAME [TO] new_tbl_name
  or    ORDER BY col
  or    table_options

create_definition については、 CREATE TABLE を参照してください。

以下、簡単な使い方を紹介します。

FOREIGN KEY 、 CHECK 及び REFERENCES 節は、 InnoDB のときのみ有効ですのでここでは省略します。

列を最後に追加する

列を最後に追加するには

ALTER TABLE テーブル名 ADD 追加する列名 型;
又は
ALTER TABLE テーブル名 ADD (追加する列名 型,追加する列名 型);

列を先頭に追加する

列を先頭に追加するには

ALTER TABLE テーブル名 ADD 追加する列名 型 FIRST;

列を指定の列の後に追加する

列を指定の列の後に追加するには

ALTER TABLE テーブル名 ADD 追加する列名 型 AFTER 列名;

テーブルにインデックスを追加する

インデックスを追加するには

ALTER TABLE テーブル名 ADD INDEX [インデックス名] 列名;
又は
ALTER TABLE テーブル名 ADD INDEX [インデックス名] (列名,列名);

インデックス名は、省略可能です。

主キー(プライマリーキー)を追加する

プライマリーキーを追加するには

ALTER TABLE テーブル名 ADD PRIMARY KEY (列名,...);

ユニーク制約を追加する

ユニーク制約を追加するには

ALTER TABLE テーブル名 ADD UNIQUE [インデックス名] (列名,...);

インデックス名は、省略可能です。

全文検索インデックスを追加する

ユニーク制約を追加するには

ALTER TABLE テーブル名 ADD FULLTEXT [インデックス名] (列名,...);

インデックス名は、省略可能です。

CHAR,VARCHAR,TEXT列に付けることができます。

日本語での処理は、ただいま調査中です。

列名を変更する

列名を変更するには

ALTER TABLE テーブル名 CHANGE 古い列名 新しい列名;

列名の定義を変更する

列名の定義を変更するには

ALTER TABLE テーブル名 MODIFY 列名 型 NOT NULL DEFAULT デフォルト値;

列を削除する

列を削除するには

ALTER TABLE テーブル名 DROP 削除する列名;

主キー(プライマリーキー)を削除する

主キー(プライマリーキー)を削除するには

ALTER TABLE テーブル名 DROP PRIMARY KEY;

インデックスを削除する

インデックスを削除するには

ALTER TABLE テーブル名 DROP INDEX インデックス名;

テーブル名を変更する

テーブル名を変更するには

ALTER TABLE テーブル名 RENAME [TO] 新しいテーブル名;

bluenote by BBB