新しく質問する

「A列B列C列」 → 「A列C列B列」 に変更したい

役に立った:1件
  • 質問者:almati
  • 投稿日時:2007/01/17 11:24
  • 困り度:困ってます
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

連日ですみません…。
ご存知の方がいらしたら、よろしくお願いいたします。

「A列B列C列」 → 「A列C列B列」
のように、
すでに入っているデータは保持したまま変更したいのですが、
これは可能でしょうか?

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:1件)
  • 参考になった:1件

No.3ベストアンサー20pt

  • 回答者:mooboogie
  • 回答日時:2007/01/18 00:53

ALTER TABLE テーブル名 CHANGE COLUMN B列 B列 char AFTER C列

 ※B列 B列は、旧カラム名 新カラム名の意味
 ※charは、新カラムの型指定。これは必須のようです。旧と同じでよい。

か、

CREATE TABLE 新テーブル名 select A列,C列,B列 from 旧テーブル名

で、できます。
下のヤツは、PKなどインデックス類は自動付与されません。
スキーマとデータだけです。

ちなみにこの手の不明点は調べるのが簡単で、下記公式サイト(?)を辿れば答えが早いです。

通報する

この回答へのお礼

ご回答ありがとうございます!
実は質問した際のテーブル列は、
時間の関係で変更できなかったのです。
でも今後の知識として教えていただいたSQLで
テストしてみます!ありがとうございました!

  • 参考になった:0件
  • 回答者:okg00
  • 回答日時:2007/01/17 11:53

列名の変更ですか?
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.h …
http://dev.mysql.com/doc/refman/4.1/ja/alter-tab …

取り出すときに変更するだけならSELECT文を書き換えるだけで
select A列,C列,B列 from ~

通報する

この回答への補足

>列名の変更ですか?
>取り出すときに変更するだけなら
・・・・・

いえ、取り出して見るときではなく、
実際のテーブルのフィールドを、
ごそっと入れ替える、といったかんじです。

この回答へのお礼

ありがとうございました!

  • 参考になった:0件
  • 回答者:yambejp
  • 回答日時:2007/01/17 11:53

MySQLのバージョンくらい書きましょう。バージョンによってできることと
できないことがあります。
4.0.1 以降では、CHANGEやMODIFYでAFTERキーワードが使用できます。

http://dev.mysql.com/doc/refman/4.1/ja/alter-tab …

通報する

この回答への補足

申し訳ないです。
バージョンは、"4.0.14"です。
URL拝見してみます。

この回答へのお礼

ありがとうございました。
拝見して、
ALTER TABLE 'table名' ALTER COLUMN 'B列' AFTER 'C列';
こんな感じでやってみましたが、いまいち…。
もうちょとがんばってみます!

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ

Facebook公式ページ

公式Twitter