• ベストアンサー
  • 暇なときにでも

MySQLで、テーブル内のフィールドの名前を変えたいのですが・・・

MySQL4.0.20 Linuxを使っています。 テーブル内のフィールドの名前を変えたいのですが、alter table の modifyはカラムの属性を変えるもので、名前を変えるのは運用途中でできるのかなと、ふと疑問に思いました。 alter tableなどでできるのでしょうか? 結局サーバーを止めて、バックアップし、テーブル定義を書き直して、リストアするしか無いのでしょうか?

共感・応援の気持ちを伝えよう!

  • MySQL
  • 回答数2
  • 閲覧数121
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

alter table テーブル名 change 旧カラム名 新カラム 名 型; です。

参考URL:
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#id_524_

共感・感謝の気持ちを伝えよう!

その他の回答 (1)

  • 回答No.1

運用開始後、内部スキーマをいじるのは望ましいことではありませんが、alterを使えば可能です。

参考URL:
http://dev.mysql.com/doc/mysql/ja/ALTER_TABLE.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • MYSQLのフィールドにユニークキーを設定する。

    すでに作ってしまったテーブルにユニークキーを付けたいと考えています。最悪の場合、新しくカラムを作っての追加でもかまわないのですが、いろいろ試してもエラーが返されてしまいます。 codeというカラムにユニークキーを設定したいのですが、 alter table テーブル名 modify unique code; alter table テーブル名 add unique code2; alter table テーブル名 modify code unique; alter table テーブル名 add code2 unique; alter table テーブル名 modify code test unique; alter table テーブル名 add code2 test unique; alter table テーブル名 modify unique code test; alter table テーブル名 add unique code2 test; alter table テーブル名 modify (code unique); alter table テーブル名 add (code2 unique); alter table テーブル名 modify (code text unique); alter table テーブル名 add (code2 text unique); など、思いつく限り試し、グーグルで調べる限り調べたのですが、出てきたものをためしてもダメでした。 テーブルを作成した後、カラムにユニークキーを設定した経験のある方、どのように変更をしたのでしょうか?

    • ベストアンサー
    • MySQL
  • MySQLのKey属性「MUL」について

    宜しくお願い致します。 先程気付いたのですが、MySQLのKey属性に「MUL」という指定が入っていました。こんな指定をした覚えが全く無いので、消そうと思い、alter table modify でカラムの属性を変更させてもやっぱり消えないのですが、これはなんなんでしょう?

    • ベストアンサー
    • MySQL
  • テーブルのフィールドにNot null制約を付けたい

    お世話になります。 既存テーブルにフィールドを追加する方法は わかっているのですが、その追加したフィールドに not null制約を付けるにはどのようなコマンドを 実行する必要があるのでしょうか。 ↓のコマンドには制約をつけるオプションはないですよね。。 ALTER TABLE テーブル名 ADD (カラム名 カラム定義) よろしくお願いします。

  • すでにあるテーブルのフィールドにユニークキーを設定できますか?

    はじめまして。 私のレンタルサーバーには最初からMYSQLというデータベースが付いています。 テーブルを設定して、すでにいくつかのデータを入力しています。 最近、重複して同じIDが入力できることに気づきました。 重複できないようにしたいと思い、調べたところ、ユニークキーというものを設定すれば重複しないらしいと言うことを知りました。 そちらのレンタルサーバーにはすでにPHPMYADMINが使えるようになっています。 PHPMYADMINをつかってIDのフィールドにユニークキーを設定しようとしました。 すると下記のようなエラーがでて、ユニークキーの設定に失敗しました。 > エラー > 実行した SQL 照会: > > ALTER TABLE `テーブルの名前` ADD UNIQUE ( > > `フィールドの名前` > ); > すでにデータが入力されているテーブルのフィールドにはユニークキーは設定できないのでしょうか? もし、すでにデータが入力されているテーブルのフィールドにユニークキーを設定する方法があったら教えてください。 もしくは私が勘違いをしている部分があったら教えて頂ければ幸いです。

    • ベストアンサー
    • MySQL
  • MySQLのカラムを削除したが,それを復元したい

    MySQLのテーブル内のカラムを再編成しようとしています. そこで,カラムAをALTER TABLE DROPで削除しました. その直後,カラムAは必要であることに気づきました. テーブルのバックアップを取っていないので,困ります. この削除コマンドをキャンセル(UNDO)したり,削除したカラムを復元できますか?

  • MySQLからフィールド名のリストを取り出し、一部のフィールド名を除外したい場合

    PHP + MySQLにて テーブルからフィールド名だけを取得し、さらに一部のフィールド名を除外したいです。 レコードじゃないのでis not構文は使えませんでした。 何かいい方法があれば教えてください。 $sql = "select * from table"; //tableテーブルからフィールド名を取り出し $rs = mysql_query($sql); $fields = mysql_num_fields($rs); $column = array(); for ( $i=0; $i<$fields; $i++ ) { $column[$i] = mysql_field_name($rs, $i); }

    • ベストアンサー
    • MySQL
  • 【MYSQL】フィールド名の変更(半角→全角)について

    フィールド名の変更(半角→全角)について ただいまmysqlを勉強中の初心者なのですが、 入門書を見ながら試験的に作ったテーブルのフィールド名を変更しようとしています。 テーブル名 tbl_employee 元フィールド名 「code」 型 varchar(40) 新フィールド名 「社員コード」 型 varchar(40) ALTER TABLE tbl_employee CHANGE code '社員コード' VARCHAR(40); とか ALTER TABLE tbl_employee CHANGE code 社員コード VARCHAR(40); とか ALTER TABLE tbl_employee CHANGE code '社員コード'; とか ALTER TABLE tbl_employee CHANGE code 社員コード; とか 一通り試してみたのですが動かず… ちなみに「社員コード」ではなく半角で「syain_code」という名前に変更することは出来ました。 全角文字だけがシンタックスエラーになります。 何が原因か分かる方いらっしゃいましたら教えてくださいませ。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • mysqlのalter table中のロックについてです。

    mysqlのalter table中のロックについてです。 下記のように、alterでテーブルを再構築中に同じテーブルにinsertが実行された場合、 接続Bのinsertはブロックされるかと思うのですが、テーブルが大きくalterに時間がかかる場合、 タイムアウトなどは発生するのでしょうか。 またもし発生する場合、タイムアウト値の設定などの確認方法はあるのでしょうか。 1.接続A  alter table table1 add columnB int(11) ; 2.接続B(接続Aのalter実行中)  insert into table1(columnA) values('aaa');

    • ベストアンサー
    • MySQL
  • MySQLで新しくフィールドを、ある場所に追加したい。

    普通にフィールドを追加するときは、 add table テーブル名 add 追加するフィールド名 その属性; と書くとおもうのですが、これだとそのテーブルの一番下にフィールドが追加されてしまうと思います。 例えば、上から何番目(あるいは、あるフィールドとあるフィールドの間)にフィールドを追加したい、という処理はできるのでしょうか? よろしくお願いします。

  • (MySQL)全てのテーブルの照合順序を変更したい

    MySQL5.1.33-communityをWindows上のXAMPPにて使用しています。 操作端末としてphpMyAdmin3.1.3.1を使用しています。 約90個のテーブルがあり、それらの照合順序が意に反してlatin1_swedish_ciになっており、これらを全てujis_japanese_ciに変更したいと思っています。 この場合、ALTER TABLE 文で行えばいいというのはわかるのですが、 ALTER TABLE `テーブル名` CONVERT TO CHARACTER SET ujisとして1つずつテーブル名を指定しなければできないのでしょうか。 まとめて一撃で行う方法はありませんか? ALTER TABLE * CONVERT TO CHARACTER SET ujis とやってみても通りませんでした。 DROP TABLEの場合、テーブル名をコンマで区切って列挙して複数テーブルを一撃でDROPできたのですが、ALTER TABLEの方ではどうも通りませんでした。 普段はPostgreSQLを使っているのでMySQLについてははじめての経験です。詳しい方、よろしくご教示ください。

    • ベストアンサー
    • MySQL