人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLのカラムの位置を最後尾に持ってくる方法を教えてください。
カラムa
カラムd
カラムb
カラムc
という順番のテーブルを
カラムa
カラムb
カラムc
カラムd
とする方法です。

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

●質問者: kunitz
●カテゴリ:ウェブ制作
✍キーワード:ALTER MySQL カラム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●27ポイント

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


2 ● tokuya_n
●27ポイント

公式見解はこちら

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

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


どうしてもって言うなら

1. 別名でテーブル作成

2. データコピー

3. 旧テーブルを削除

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


ということか。

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


3 ● b-wind
●26ポイント

無い。また 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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ