̃Gg[͂ĂȃubN}[Nɒlj

MySQL :: カラムの追加、変更、削除、インデックス操作



備忘録
  • カラムの追加、変更、削除
  • インデックス操作
  • auto_incrementの初期化
  • ストレージエンジンの変更
  • コメントの取得


  • カラムをあるカラムの[前|後]に追加する
ALTER TABLE `テーブル名'
    ADD COLUMN `追加カラム名' `カラム型' COMMENT 'コメント' [FIRST | AFTER] `カラム名'
例)
ALTER TABLE tablename ADD COLUMN new_field tinyint not null COMMENT 'comment' AFTER default_field


  • カラムの型を変更する
ALTER TABLE `テーブル名'
    MODIFY `カラム名' `変更後のカラム型'
例)
ALTER TABLE tablename MODIFY default_field tinyint not null COMMENT 'コメント!';


  • カラムの名前を変更する
ALTER TABLE `テーブル名'
    CHANGE COLUMN `カラム名' `新しいカラム名' `カラム型'
例)
ALTER TABLE tablename CHANGE COLUMN default_field new_field char(100) not null


  • カラムを削除する
ALTER TABLE `テーブル名'
    DROP `カラム名'
例)
ALTER TABLE tablename DROP default_field


  • 主キー(プライマリキー)を削除する
ALTER TABLE `テーブル名'
    DROP PRIMARY KEY
例)
ALTER TABLE tablename DROP PRIMARY KEY


  • 主キー(プライマリキー)を追加する
ALTER TABLE `テーブル名'
    ADD PRIMARY KEY (index_name, ...)
例)
ALTER TABLE tablename ADD PRIMARY KEY (idx_table_id, idx_table_gid, ...)


  • インデックスを追加する
ALTER TABLE `テーブル名'
    ADD INDEX `インデックス名' (index_name, ...)
例)
ALTER TABLE tablename ADD INDEX index_name (idx_table_id, idx_table_gid, ...)


  • インデックスを削除する
ALTER TABLE `テーブル名'
    DROP INDEX `インデックス名'
例)
ALTER TABLE tablename DROP INDEX idx_table_id


  • auto_incrementの初期化
ALTER TABLE `テーブル名'
    AUTO_INCREMENT = 初期値
例)
ALTER TABLE tablename AUTO_INCREMENT = 1


  • ストレージエンジンの変更
ALTER TABLE `テーブル名'
    ENGINE = `エンジン'
例)
ALTER TABLE tablename ENGINE = InnoDB


  • コメントの取得
SELECT
    COLUMN_COMMENT
FROM
    information_schema.columns
WHERE
    table_name = 'テーブル名'
ORDER BY
    ordinal_position
例)
SELECT COLUMN_COMMENT FROM information_schema.columns WHERE table_name = tablename ORDER BY ordinal_position



database/mysql/command/alter.txt