MySQL 5.0.45
列をnullにすることができるようにテーブルを変更するための構文は何でしょうか。
ALTER mytable MODIFY mycolumn varchar(255) null;
私はこのマニュアルを上記のコードを実行しただけであると解釈したため、列が再作成されることになりました。サーバーは私に構文上の誤りがあると言っています。私はそれらを見ません。
あなたは以下が欲しい:
ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);
列はデフォルトではNULL可能です。列がUNIQUE
またはNOT NULL
として宣言されていない限り、問題はありません。
構文エラーは、クエリに "table"がないことが原因で発生します
ALTER TABLE mytable MODIFY mycolumn varchar(255) null;
私の解決策:
ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL
例えば:
ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;
状況によっては(「ERROR 1064(42000):SQL構文にエラーがあるので... ...」が表示される場合)、実行する必要があります。
ALTER TABLE mytable MODIFY mytable.mycolumn varchar(255);
私の解決策は@ Krishnrohitと同じです。
ALTER TABLE `table` CHANGE `column_current_name` `new_column_name` DATETIME NULL;
私は実際に列をNOT NULL
に設定しましたが、上記のクエリではNULL
に変更されました。
P.S私はこれが古いスレッドであることを知っていますが、CHANGE
も正しいということを誰も認識していないようです。
列が二重の場合
ALTER TABLE `tablename` CHANGE `column_name` `column_name` DOUBLE NULL;