0

列タイプを更新した後、MySQL テーブルが「クラッシュ」しました。私もいくつかの新しい列に変更VARCHARして追加しました。INT

その後、テーブル エントリを表示したい場合、すべてのソフトウェアがロードとクラッシュを繰り返すだけで、テーブルに対してクエリを実行することさえできません。私にできることは、テーブルの列のリストを見ることだけです。(PhpMyAdmin、HeidiSQL、MySQL Workbench で試しました)。変更は HeidiSQL で行います。

私は何をすべきか?これは初めてのことで、私は長い間 HeidiSQL を使用してきました。

4

1 に答える 1

0

テーブル スキーマの に変更さVARCHARれました。INT一見、正しいです。列を変更するだけで、mysql サーバーはエラーを表示せずに動作しますが、テーブルを変更すると、mysql サーバーは多くの作業を行う必要があります。最初にレコードを一時的に保存し、スキーマを再作成してレコードを挿入します。テーブルに多くのレコードがある場合、変更するのは困難です。したがって、テーブルを切り捨ててスキーマを変更して再挿入するか、他のテーブルを作成して後で名前を変更します。

私の意見では、解決策はスキーマを必要に応じてテーブルを作成することです。

テーブルから新しいテーブルにレコードを挿入します。例えば-insert into new_table (col1, col2) select col1, col2 from old_table;

古いテーブルをドロップ drop table old_table

新しいテーブルの名前を古いテーブルに変更する rename new_table to old_table

于 2015-07-31T00:40:42.693 に答える