MySQLのカラムの位置を最後尾に持ってくる方法を教えてください。

カラムa
カラムd
カラムb
カラムc
という順番のテーブルを
カラムa
カラムb
カラムc
カラムd
とする方法です。

ALTER文などであるのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/02/13 16:11:52
  • 終了:2007/02/20 16:15:03

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982007/02/13 16:26:59

ポイント27pt

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

id:tokuya_n No.2

tokuya_n回答回数56ベストアンサー獲得回数72007/02/13 16:22:13

ポイント27pt

公式見解はこちら

http://dev.mysql.com/doc/refman/4.1/ja/change-column-order.html

SELECTする時にフィールド名指定がベスト。


どうしてもって言うなら

1. 別名でテーブル作成

2. データコピー

3. 旧テーブルを削除

4. 新テーブルを旧テーブル名に改名


ということか。

やり方は上記公式サイトをご参照ください。

id:b-wind No.3

b-wind回答回数3344ベストアンサー獲得回数4402007/02/13 23:48:34

ポイント26pt

無い。また 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 型のカラムになることがあります。

もちろんその後テーブル名をリネームして入れ替える必要有り。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません