ENUM
の値が表されているすべての行で、ENUM
の値を変更することが可能かどうかは、よくテーブル全体でMySQL ENUM値の値を変更する
答えて
あなたが列挙型の値を変更する場合:
古い列挙型だったと仮定します。
ENUM('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese')
その使用を変更するには:
-- Add a new enum value
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese', 'French');
-- Update the table to change all the values around.
UPDATE tablename SET fieldname = 'French' WHERE fieldname = 'Frenchdghgshd';
-- Remove the wrong enum from the definition
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Chinese', 'German', 'Japanese', 'French');
MySQLは、おそらくすべてを通過しますテーブル内の行を更新しようとしていますが、その周りに計画された最適化の話を聞いたことがありますが、実際に起こったかどうかはわかりません。
あなたは自動的にデータベースを通過し、必要な変更を加えると思いますか?私は別の方法は、新しいENUM値をセットに追加するために 'ALTER'を使用し、古い値のテーブル内のインスタンスを新しい値で置き換えるために' UPDATE'を使用することであると考えていました。最後に 'ALTER'を使って古い' ENUM'値を削除してください。それがうまくいくと思いますか? – stefmikhail
enumは実際にフィールドに文字列を格納するのではなく、列挙型の値を保持する最小の整数(通常はtinyint)を使用します。列挙型のmysqlで文字列を変更すると、多くの場合、行は – Johan
に何もする必要はありません。 – stefmikhail
- 1. MySQLテーブルの値を変更する
- 2. ウィンドウ全体のアルファベットを変更するのではなく、ウィンドウ全体のアルファ値を変更する
- 3. データベース全体をhtmlテーブル(PHP、MySQL)で更新する方法
- 4. クリックでHTMLテーブルの値全体を取得する方法
- 5. mySQLテーブル全体をPHP配列にロード
- 6. 構造体の値を変更する
- 7. テーブル全体の更新
- 8. EclipseのデバッガでJava enumの値を変更しますか?
- 9. MYSQL - 列全体を更新する
- 10. mysqlの別のテーブルの値を持つテーブル内の値を更新する
- 11. KnockoutJS:値をenumに変更するためのバインディングハンドラを作成
- 12. mysqlはテーブルの値を変更しますか?
- 13. 照合中にenum内の値を変更する
- 14. Excelテーブルの値の変更
- 15. テーブルのHTML全体と同じ隠し変数値を設定します
- 16. オリエンテーション変更のUI全体を変更
- 17. テーブル全体を更新するとMySQLのデッドロックが発生する
- 18. Mysql - 左側の結合でテーブル全体をエイリアスする方法
- 19. 変数値の変更自体
- 20. 時間の経過とともにテーブル内のMySQLで値を変更する
- 21. リスト全体が変更される場合のMysqlの制限
- 22. SQLクエリ:テーブルの最小値を持つ行全体を取得
- 23. アプリケーション全体のフォントサイズを変更する
- 24. カウントが同じテーブルのMySQL更新値
- 25. MYSQLテーブル全体を別のテーブルに置き換えます
- 26. ms-accessテーブルの値を別のテーブルの値で更新する
- 27. JQuery:テーブルから列の値全体を選択
- 28. MySQLの手順の中でENUMの価値を得る方法
- 29. 別のテーブルからの値でテーブル値を更新する
- 30. テーブルの値を別のテーブル値で更新するSQL Serverクエリ
更新ステートメントを使用しますか? 'UPDATE table1 SET enum1 = 'male' WHERE enum1 = 'female'' – Johan
@Johan - それは問題を起こさないでしょうか?私は 'ENUM'値自体を変更するために' ALTER'を使う前にそれをやらなければならないと思います。しかしそれは許されるだろうか?私は、指定された値だけが列挙型列で選択できると考えたので、私は疑問に思いますか?そして、新しい値がまだ指定されていない場合... – stefmikhail
最初に変更してから更新すると、 'create table' /' alter table'文で設定されていない値にenumを設定することはできません。 – Johan