2017-06-22 9 views
0

MySQLをデータベースとして使用しています。列が "int"データ型のテーブルがあります。そのint型の上限を超過しています。すなわち、4294967295です。 同じエントリ/値を取得する解決策はありますか? 私たちは1時間以上ダウンタイムを望んでいません。MySQLのデータ型 "int"が上限を超えています

Bigint型に変更することが検討されましたが、時間が短縮されることに焦点が当てられています。

+0

mySQLのdataTypeをBIGINT – Kasnady

+0

yesに変更するだけで、まだ3〜4時間かかります。 – Maddy25

+0

あなたは選択肢がありません。小数点以下切り上げの値に変更する以外は – Kasnady

答えて

1

ソリューションは次のようになります。

  • ALTER TABLEは
  • は、現在のテーブルと同じレイアウトでのCREATE TABLEが、その後問題のある列(レッツ・コールのための新しいデータ型(BIGINT)でoriginal_table_oldしoriginal_tableこの1つoriginal_table_new)
  • CREATE VIEW original_table AS SELECT * FROM original_table_old UNION SELECT * FROM original_table_newあなたのクエリにそのビューを使用してください。

これは速いですが、VIEWはmysqlのバージョン(5.7は問題ありません)に応じてパフォーマンスをかなり低下させる可能性があります。

0

あなたの値が長い場合、INTタイプは使用できません。関連するタイプを変更する必要があります。 StackOverflowでのあなたの問題についてのさらなる説明があります

MySQLにint(255)を格納すると、何番の値ですか? Click here

mysqlのint(11)の列のサイズは何バイトですか? Click here

関連する問題