2016-03-02 84 views
-1

我創建了一個表模式,並指定對於某些屬性,值不能爲空。對於此表的一列,值將從另一個表的列中導入,但是我面臨的問題是,當我使用insert語句將值從另一個表的該列複製到此新創建的表的列時,這個新列的屬性開始尖叫,因爲它們對它們有一個約束,雖然插入它們的值不能爲NULL! 我該如何應對?插入SQL和NOT NULL值

一個解決方案是,對於其他屬性,只是暫時,我可以指出空值可以容納,以便我可以成功地從其他表的列中導入值,然後將條件放在剩餘的屬性上不是NULL。但我該怎麼做呢?

+0

你可以發佈你用於插入的代碼以及你正在使用的是什麼sql引擎嗎? –

+0

您試圖將空值置於非空列中,您期望在結果中看到什麼?這樣的行應該被跳過,或者空值應該被替換爲一個真實的值 –

回答

0

您需要在導入時將NULL轉換爲DEFAULT值。

我不確定你正在使用哪個數據庫引擎,在mysql中: 使用類似IFNULL(column_name, "")的東西。

Reference

-1

您可以簡單地尋找default條款。當你定義一個列時,你可以指定;

intcol int not null default 0 

如果沒有爲插入指定的列,則默認爲0。在某些數據庫,如果NULL提供值,它也將獲得默認值。