2012-05-15 11 views
12

を許可し、テーブル「MyTableという」は次のように定義されていますアルターSQLテーブル - 最初はNULL列値に

CREATE TABLE IF NOT EXISTS `MyTable` (
    `Col1` smallint(6) NOT NULL AUTO_INCREMENT, 
    `Col2` smallint(6) DEFAULT NULL, 
    `Col3` varchar(20) NOT NULL, 
); 

コラム「コル3」のようになりますようにそれを更新する方法NULLにすることができますか?

+0

この質問は回答されているもしそうなら、回答を受け入れたものとしてマークすることを忘れないでください。 – RyanfaeScotland

答えて

17

次のMySQLステートメントは、NULLを受け入れるように列を変更する必要があります。

ALTER TABLE `MyTable` 
ALTER COLUMN `Col3` varchar(20) DEFAULT NULL 
+0

ええ、列3(日付)を編集すると、自動的に値 '0000-00-00'が得られます。しかし、私はそれがNULLと等しいことを望みます。 –

+3

UPDATE TABLE MyTable SET Col3 = null WHERE Col3 = '0000-00-00' – Tschareck

+2

待機... Col3ではないvarchar(20)ではなく、Date? – Tschareck

17
ALTER TABLE MyTable MODIFY Col3 varchar(20) NULL; 
+0

MySQL Query Browserで列を編集すると、次のエラーメッセージが表示されます。列1の「列3」のデータが切り捨てられました。更新後に発生します。 –

+0

私はALTER TABLEを試してみるspen_recipe MODIFY Null varchar(20)NULL;私は間違っています –

+0

@ SachinS:そこで最初に 'Null'は何をしていますか? – eggyal

関連する問題