1

H2 中的合并查询显示错误,即 null is not allowed

我有一个有 4 列的苹果表:id、type、name、status...其中 id 和 type 不能为空(ID 是主键)。

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

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

它给出了一个错误,显示null is not allowed for column "type"

我不知道哪里出了问题。我在苹果表中只有一个条目,其中已经包含有效的“id”和“type”。

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

4

2 回答 2

1

Apple 期望的表类型具有除 null 之外的某种值,并且这不是由您从 Fruit 中选择的。这就是它出错的地方。我不知道 h2,但也许该语句应该看起来像: Merge Into Apple(ID,Name,status, type) key (ID) select ID,Name,Status,0 from Fruit ;

因此,每个 Apple 的 type 都只是 0。

于 2013-05-10T11:27:43.097 回答
1

如果该表包含type不能包含的列null(如您所写),那么您必须在语句中为该列提供一个值:

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

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

于 2013-05-10T14:28:10.673 回答