ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

MySQLでカラムの順番を変更する方法

Monday, 5 May 2008 11:35 by sabro

2009/06/22 追記
よく考えたら、Alter Table文で一発な気がする。何でこんなエントリ書いたんだろ。でも、どっかのサイト(たしか公式だったような)で以下のような記述をみたんだよなー

個人的メモ。

MySQLでカラムの順番を変更する手順

  1. MySQL Query BrouwserのCreate文作成機能とかでSQL取得
  2. Create文のカラム順を変更する
  3. さらにCreate文のテーブル名、外部キー名を変更してテーブルを複製
  4. Insert Into Select文で、複製したテーブルに元テーブルのデータをコピー
  5. 古いテーブルをDrop
  6. 複製したテーブルの名前を古いテーブル名へ変更

SQLにすると、以下みたいな感じ

# Create文でテーブル複製
create table  `xxx`.`t_xxx_tmp` (
  `id` int(10) unsigned not null auto_increment,
  `name` varchar(10),
  primary key  (`id`)
) engine=innodb default charset=utf8;

# データのコピー
insert into t_xxx_tmp select id,name from t_xxx

# 古いテーブル削除して複製テーブルをリネーム
start transaction;
set foreign_key_checks = 0;
drop table t_xxx;
alter table t_xxx_tmp rename to t_xxx;
commit;

Categories:   MySQL
Actions:   Permalink | Comments (37) | Comment RSSRSS comment feed