カラムa
カラムd
カラムb
カラムc
という順番のテーブルを
カラムa
カラムb
カラムc
カラムd
とする方法です。
ALTER文などであるのでしょうか?
http://adg.bne.jp/takenote/note/mysql/index.html
テーブルの構造を変更/alter table
■alter tableテーブルの構造を変更する。
フィールドの追加
alter table TEST_T add AGE_C int;
alter table TEST_T add AGE_C01 int first;
#最初のフィールドに追加する。
alter table TEST_T add AGE_C02 int after NAME_C;
#任意の位置に追加する。
フィールドの削除
alter table TEST_T drop AGE_C01;
フィールドの変更
alter table TEST_T change AGE_C02 AGE_C00 int;
alter table TEST_T change AGE_C00 AGE_C00 varchar(2);
alter table TEST_T modify AGE_C00 int;
型だけ変更できる。
alter table java modify ID int not null primary key;
テーブル名の変更。
alter table TEST_T rename as NEWFRIEND_T;
順番を変える
ORDER BY col
公式見解はこちら
http://dev.mysql.com/doc/refman/4.1/ja/change-column-order.html
SELECTする時にフィールド名指定がベスト。
どうしてもって言うなら
1. 別名でテーブル作成
2. データコピー
3. 旧テーブルを削除
4. 新テーブルを旧テーブル名に改名
ということか。
やり方は上記公式サイトをご参照ください。
無い。また MySQL に限らずDB自体のカラムの順番に頼るべきではない。
どうしてもやらなければならない場合は CREATE TABLE .. AS SELECT .. 構文を使うと楽。
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.5.3 CREATE TABLE 構文
MySQL 3.23 以降では、CREATE TABLE ステートメントの最後に SELECT ステートメントを追加することによって、1 つのテーブルから別のテーブルを作成することができます。
CREATE TABLE new_tbl SELECT * FROM orig_tbl;
インデックスは新しいテーブルに持ち越されません。また、一部のカラム型の変換が行われる場合があります。たとえば、AUTO_INCREMENT 属性は維持されず、VARCHAR 型のカラムは CHAR 型のカラムになることがあります。
もちろんその後テーブル名をリネームして入れ替える必要有り。
コメント(0件)