2008-10-17 2 views
288

MySQL 5.0.45Как мне изменить столбец MySQL, чтобы разрешить NULL?

Что такое синтаксис, чтобы изменить таблицу, чтобы столбец быть пустым, попеременно то, что случилось с этим:

ALTER mytable MODIFY mycolumn varchar(255) null; 

переводил инструкцию, как просто запустить выше, и его будет воссоздать столбец, на этот раз допустив null. Сервер говорит мне, что у меня синтаксические ошибки. Я просто их не вижу.

+0

колонок не является уникальным или что-нибудь еще в этом роде, что – zmf 2008-10-17 16:53:59

ответ

421

Вы хотите следующее:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255); 

Колонки обнуляемым по умолчанию. Пока столбец не объявлен UNIQUE или NOT NULL, проблем не должно быть.

+9

Там есть крайний случай, который является `типа TIMESTAMP`, который в зависимости от версии MySQL и конфигураций может быть` НЕ NULL` указания «NULL», предложенный @ConroyP, является более правильным. – 2016-01-26 13:37:41

+0

Это не сработало для меня! Столбец не изменился. Может быть, потому, что у меня было ограничение на другую таблицу, в которой использовался столбец (если не null). – Rocologo 2016-12-18 10:09:27

150

Ваша ошибка синтаксиса вызывается отсутствующим «стол» в запросе

ALTER TABLE mytable MODIFY mycolumn varchar(255) null; 
+14

На самом деле это правильный ответ - в то время как предложение NULL не требуется, нет ничего плохого в его предоставлении. Ошибка TABLE из инструкции ALTER TABLE была реальной проблемой. – SamStephens 2014-11-20 20:38:14

4

В некоторых случаях (если вы получаете «ОШИБКА 1064 (42000): У вас ошибка в вашем SQL синтаксиса; .. . ") вам нужно сделать

ALTER TABLE mytable MODIFY mytable.mycolumn varchar(255); 
17

Мое решение:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL 

Например:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL; 
-4

Использование: ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

Смежные вопросы