私はEnumデータ型を別のテーブルの外部キーとして参照される主キーとして使用しています。この列挙型の値に余分な要素を追加する必要がある場合は、両方の表にMySQLのENUMタイプに開始から2バイトを使用させる
ALTER TABLE <table> MODIFY <colName> ENUM(<OLD VALUES>, NEW VAL);
を使用します。それはうまく動作します。
私は< 255値以上になってしまった1つのあいまいな例がありました。その場合、ENUMは1バイトストレージから2バイトストレージに切り替える必要があります。それは失敗する時です。 './TXCAD/EN_TABLE」(errnoに:150)に' ./TXCAD/#sql-5912_86' の名前変更のエラー:私
ERROR 1025(HY000)を与える
私はいくつかの研究をしましたメインテーブルの1バイトから2バイトへの変換が、外部キーのデータ型の不一致を引き起こすことがわかりました。
テーブルの作成中にENUM()が255未満の値を持っていても、MySqlに開始から2バイトを強制的に使用させる方法はありますか?(これは256+の値から始まる場合には起こりません。 ?
MySQLを使用して - 5.1 InnoDBテーブル
だけ知っているので
ありがとうございます。私はあまりにもページをチェックした。 doesntはそのサイズを強制する簡単な方法であるように思われる。これは本当に強力なデータ型ですが、MySqlで十分に活用されていません。 – Jai
これのための方法を見つけることができませんでした。 Dontはこれを通常の解決策と信じています。 – Jai