2013-05-10 57 views
1

H2中的合并查询显示错误,表示不允许为nullH2 H2中的合并查询显示null不允许错误

我有一个苹果表4列:id,类型,名称,状态...其中id和类型不能为空(ID是主键)。

我合并两列数据“的名称,状态”使用合并命令

Merge Into Apple(ID,Name,status) 
key (ID) 
select ID,Name,Status from Fruit ; 

它给显示空的错误不允许列“类型”

我不知道它会在哪里出错。我在苹果表中只有一个条目,它包含一个有效的“id”和“type”。

我的水果表没有类型列,我也没有包括它在查询中,那么为什么它显示该特定列的问题?

回答

1

表格Apple预计类型具有某种非空值的值,并且这不是由您在Fruit中的选择提供的。这是它出错的地方。我不知道H2,但也许这个声明应该看起来像这样: 合并到苹果(ID,名称,状态,类型)键(ID)从水果选择ID,名称,状态,0;

因此,对于每个苹果来说,类型只会是0。

+0

实际合并允许我们添加列特定的值而不会干扰其他列。现在,当我添加到已经有一个类型的苹果表行中,然后通过提供值为0的目的将被击败.....我想附加2列从苹果水果与苹果保持所有以前的数据完整的数据.....你可以建议别的东西... – user2369782 2013-05-10 11:35:25

+0

如何:合并到Apple KEY(ID) 从水果中选择名称,状态; – bouscher 2013-05-10 11:39:28

+0

它会给列计数不匹配错误... – user2369782 2013-05-10 11:50:55

1

如果表中包含一列type不能是null(因为你写的),那么你必须提供此列语句中的值:

Merge Into Apple(ID,Name,status,type) 
key (ID) 
select ID,Name,Status,0 from Fruit ; 

作为替代,您可以指定创建表时的默认值。

+0

这正是我告诉他/她的,但用户没有相信这些答案 – bouscher 2013-05-11 14:15:15