2012-05-15 2 views
12

Первоначально таблица «MyTable» был определен следующим образом:Alter 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, 
); 

Как обновить его таким образом, что колонка «Col 3» будет разрешено быть NULL?

+0

На этот вопрос ответили? Если так, не забудьте отметить ответ, как принято. – RyanfaeScotland

ответ

17

Следующая инструкция MySQL должна изменить ваш столбец, чтобы принять NULL.

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

Да, но когда я редактирую столбец Col 3 (Date), он получает значение «0000-00-00» автоматически. Но я хочу, чтобы он был равен NULL. –

+3

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

+2

Подождите ... не Col3 a varchar (20), а не дата? – Tschareck

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

Когда я редактирую столбец (попробуйте сделать его пустым) в MySQL Query Browser, появляется следующее сообщение об ошибке: данные усекаются для столбца «Col 3» в строке 1. Это происходит после ваших обновлений. –

+0

если я попробую ALTER TABLE spen_recipe MODIFY Null varchar (20) NULL; я получаю err –

+0

@SachinS: Что это первый 'Null' делает там? – eggyal

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