2016-03-02 149 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提供值,它也将获得默认值。