SQL命令not null使用錯誤與修改資料型別

2021-06-21 15:46:47 字數 791 閱讀 8363

在做乙個資料庫時,通過命令進行表的生成時,對其他列加了 not null,唯獨對規範標識identity(1,1)的id列沒有加not null。

自以為搞好了,卻在資料輸入時發生了錯誤。最後在網上查詢問題原因,原來是not null沒有加,導致這一問題。

任何列都是預設了可以 null的,而我又identity(1,1),必須加上 not null.。最後還是出了問題

通過看書和嘗試發現,除id列和主鍵所在列之外其他列都預設null之後,問題就消失了。not null 在輸入上容易出問題,除非必須盡量不要not null。

寫了上面這點東西之後,現在又遇到了not null的毛病:我對資料庫中的表建立關係圖,大家都知道一般每一張表都有乙個主鍵列,而這個主鍵列通常會not null,問題出來了,當其他表會用到這張表中的主鍵列(此處為了敘述的簡便,把這張表的主鍵列表示為a表的a列,其他表統一為b表)時,並不一定會在b表中把a列設為not null。這樣建立關係圖是,把這兩個表中的a列建立關係開始不會出現問題,當儲存時問題就說這個列出現錯誤,導致無法建立關係,唯一的辦法就是改變其中一張表的a列的 not null屬性。

但是,如果你為了主鍵列,把b表的a列改為not null屬性,關係圖倒是可以建立了。錄入資料卻成了**煩,a和b都是新錶沒有資料,你在b中存入資料,因為會因為a表中的a列是null而無法儲存,就進入了死態,都在等對方的的a列中的資料變為not null。

所以not null 千萬小心,特別是在使用關係圖時。

修改列的資料型別

alter table 表名 alter column 列名 varchar(40) null

SQL學習之not null約束

刪除 not null 約束 菜鳥教程 sqlnot null約束用於指定某一列不接受null值 預設的情況下,表的列接受null值 not null 約束強制字段始終包含值。這意味著,如果不向字段新增值,就無法插入新記錄或者更新記錄 在建立表結構時,可以給字段新增not null關鍵字來新增not...

git使用錯誤

問題 第一次使用git,在配置好使用環境後,當我準備開始上傳本地專案,git push u origin master 發現乙個錯誤 rejected master master non fast forward error failed to push some refs to 於是我又重新檢查之...

this指標使用錯誤

todo 給person增加過載方法setname string,string public class main 錯誤 class person public void setname string name public void setname string name,string na 建立...