- ベストアンサー
「A列B列C列」 → 「A列C列B列」 に変更したい
連日ですみません…。 ご存知の方がいらしたら、よろしくお願いいたします。 「A列B列C列」 → 「A列C列B列」 のように、 すでに入っているデータは保持したまま変更したいのですが、 これは可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ALTER TABLE テーブル名 CHANGE COLUMN B列 B列 char AFTER C列 ※B列 B列は、旧カラム名 新カラム名の意味 ※charは、新カラムの型指定。これは必須のようです。旧と同じでよい。 か、 CREATE TABLE 新テーブル名 select A列,C列,B列 from 旧テーブル名 で、できます。 下のヤツは、PKなどインデックス類は自動付与されません。 スキーマとデータだけです。 ちなみにこの手の不明点は調べるのが簡単で、下記公式サイト(?)を辿れば答えが早いです。
その他の回答 (2)
- okg00
- ベストアンサー率39% (1322/3338)
列名の変更ですか? http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id628 http://dev.mysql.com/doc/refman/4.1/ja/alter-table.html 取り出すときに変更するだけならSELECT文を書き換えるだけで select A列,C列,B列 from ~
お礼
ありがとうございました!
補足
>列名の変更ですか? >取り出すときに変更するだけなら ・・・・・ いえ、取り出して見るときではなく、 実際のテーブルのフィールドを、 ごそっと入れ替える、といったかんじです。
- yambejp
- ベストアンサー率51% (3827/7415)
MySQLのバージョンくらい書きましょう。バージョンによってできることと できないことがあります。 4.0.1 以降では、CHANGEやMODIFYでAFTERキーワードが使用できます。 http://dev.mysql.com/doc/refman/4.1/ja/alter-table.html
お礼
ありがとうございました。 拝見して、 ALTER TABLE 'table名' ALTER COLUMN 'B列' AFTER 'C列'; こんな感じでやってみましたが、いまいち…。 もうちょとがんばってみます!
補足
申し訳ないです。 バージョンは、"4.0.14"です。 URL拝見してみます。
お礼
ご回答ありがとうございます! 実は質問した際のテーブル列は、 時間の関係で変更できなかったのです。 でも今後の知識として教えていただいたSQLで テストしてみます!ありがとうございました!