天天看點

MySQL解決修改列為Not Null報錯問題

背景:一開始建立資料庫時沒有允許某一列非空,但是後來又想讓這一列屬性為非空,直接操作資料庫就報了下面的錯誤:

MySQL解決修改列為Not Null報錯問題
MySQL解決修改列為Not Null報錯問題
MySQL解決修改列為Not Null報錯問題

錯誤原因是說我這個Table已經存在了。

這可咋整呢,這個表裡有我花了半個多小時才填上去的資料,可不能删了這個表再重新建立個表,然後再還原一遍吧,那還不得把人累死。

自己想了老半天,終于想出了一個比較簡單的方法:

第一步:建立一個新表,把裡面的列名啥的全部寫成和你要改的那個表一樣,列名的順序也要一樣。

第二步:在你原來那個表的視圖中點選下圖中的紅色框框那個地方,将你的表點選成全部便成藍色的樣子(就像下面這樣)

MySQL解決修改列為Not Null報錯問題

第三步:在藍色區域右鍵,選擇那個copy row

MySQL解決修改列為Not Null報錯問題

第四步:點開你剛剛建立的表的視圖,還是點選那個位置,使你的表全部成為藍色,然後右鍵,點選“Paste Row”,然後你就會發現原來表的内容全部複制到了這張表上,剩下的就是删除原來的表以及将現在這張表的名字改成原來那張表的名字了。

(由于自己已經完成了,再建立個表示範一遍比較麻煩,這裡就不貼圖了)

當然,我猜這種方法也有局限性,比如說這個視圖中隻能顯示1000行,是以複制的資料我猜可能隻能在1000行之内,如果你的表的内容大于1000行,能不能行我也不知道。