2012-05-15 16 views
12

Początkowo tabela „MojaTabela” zostało zdefiniowane w następujący sposób:Alter SQL stół - pozwalają NULL wartość kolumny

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

Jak zaktualizować go w taki sposób, że kolumna „Kol 3” będzie może być NULL?

+0

Czy to pytanie zostało odebrane? Jeśli tak, nie zapomnij oznaczyć odpowiedzi jako zaakceptowanej. – RyanfaeScotland

Odpowiedz

17

Następująca instrukcja MySQL powinna zmodyfikować kolumnę, aby zaakceptować NULL.

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

Tak, ale kiedy edytuję kolumnę Col 3 (Data), automatycznie otrzymuję wartość "0000-00-00". Ale chcę, żeby była równa NULL. –

+3

TABELA AKTUALIZACJI Zestaw MyTable SET Col3 = null WHERE Col3 = '0000-00-00' – Tschareck

+2

Czekaj ... czy Col3 nie jest varcharem (20), czy datą? – Tschareck

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

Kiedy edytuję kolumnę (spróbuj ją uczynić pustą) w przeglądarce zapytań MySQL, pojawia się następujący komunikat o błędzie: Dane obcięte dla kolumny "Col 3" w wierszu 1. Dzieje się to po aktualizacji. –

+0

jeśli próbuję ALTER TABLE spen_recipe MODIFY Null varchar (20) NULL; dostaję err –

+0

@SachinS: Co tam robi pierwszy "Null"? – eggyal