2015-08-13 29 views
3

我在MySQL中有一個表,我想改變一個表,以允許列爲空。如何在不指定數據類型的情況下修改MySQL列以允許NULL?

當我形容我的MySQL表,我看到了MySQL工作臺這些東西:

Field  Type  Null  Key  Default  Extra 

我想設置Null字段YES特定列。這是我如何嘗試哪些工作正常,但我需要提供其數據類型,而將DEFAULT設置爲NULL?

ALTER TABLE abc.xyz CHANGE hello hello int(10) unsigned DEFAULT NULL; 
ALTER TABLE abc.xyz CHANGE world world int(10) unsigned DEFAULT NULL; 

是否存在被我可以隨便挑列名和默認設置爲NULL,而不是使用其數據類型以及任何其他方式?我不想提供int(10),而將其默認設置爲NULL。

+0

最好把NULL/NOT NULL看作字段數據類型的一部分(它會影響存儲)。如果您使用的是Workbench,那麼爲什麼不使用它內置的功能來改變表格呢? – Uueerdo

+0

No.數據類型需要定義爲表定義的一部分;或者它必須從現有的數據集或表繼承。您想設置NULL默認值的問題,但定義的int值可能因表到字段而異? (記住NULL是默認值,所以爲什麼設置它?) – xQbert

+0

[可能的重複](http://stackoverflow.com/questions/212939/how-do-i-modify-a-mysql-column-to-allow -空值) – ODelibalta

回答

3

你有點錯了。將默認值更改爲NULL不會「允許」該列爲空:您需要執行的操作是在該列上刪除「NOT NULL」約束。

但是要通過腳本重新定義列的可空性,您將不得不繼續引用數據類型。你必須輸入類似

ALTER TABLE MyTable MODIFY COLUMN this_column Int NULL; 
1

不知道這是否適用,如果你正在尋找一個直DDL語句,但在MySQL Workbench中的表名,你可以單擊鼠標右鍵,選擇「ALTER TABLE。 ..「,它將拉起一個表格定義GUI。從那裏,你可以選擇null/not null(在所有其他選項中)而不顯式列出列的數據類型。只是一個「爲了什麼是值得的」......

相關問題