Database H2数据库中的合并查询显示null不允许错误
H2中的合并查询显示不允许null的错误 我有一个apple表,有4列:id、type、name、status……其中id和type不能为null(id是主键) 我正在使用merge命令合并两列“name,status”的数据Database H2数据库中的合并查询显示null不允许错误,database,merge,h2,Database,Merge,H2,H2中的合并查询显示不允许null的错误 我有一个apple表,有4列:id、type、name、status……其中id和type不能为null(id是主键) 我正在使用merge命令合并两列“name,status”的数据 Merge Into Apple(ID,Name,status) key (ID) select ID,Name,Status from Fruit ; 它给出了一个错误,显示“type”列不允许使用null 我不知道哪里出了问题。我在apple表中只有一个条目,它已经
Merge Into Apple(ID,Name,status)
key (ID)
select ID,Name,Status from Fruit ;
它给出了一个错误,显示“type”列不允许使用null
我不知道哪里出了问题。我在apple表中只有一个条目,它已经包含了一个有效的“id”和“type”
我的水果表没有类型列,我也没有将其包括在查询中,那么为什么它显示了该特定列的问题 Apple希望表type具有null以外的某种值,而这不是由您从Fruit中选择的值提供的。这就是问题所在。我不知道h2,但也许这句话应该是这样的: 合并到苹果(ID,名称,状态,类型)键(ID)选择ID,名称,状态,0从水果
因此,对于每个苹果,type只能是0。如果表中包含一列
type
,该列不能为null
(如您所写),则必须在语句中为此列提供一个值:
Merge Into Apple(ID,Name,status,type)
key (ID)
select ID,Name,Status,0 from Fruit ;
作为替代方案,您可以在创建表时指定一个默认值。实际上,合并允许我们添加特定于列的值,而不会干扰其他列。现在,当我添加到已存在类型的apple表行中时,如果提供值0,则用途将失效。…我想在apple Froot表中添加2列由于fruit中的值保持了apple中以前的所有数据的完整性…您可以提出其他建议吗…如何:合并到apple KEY(ID)中选择名称、fruit中的状态;这是因为Fruit中的列数小于Apple中的列数,这就是为什么我建议为列类型提供一个默认值,如0,因为它需要某种值。只要您只是附加行,这个默认值就没有问题。我希望这将有助于您理解h2 db的合并查询,并且添加0不会有帮助,因为我在水果表中没有相应的列…我只能将水果表中的列添加到apple表中…指定0会给我一个语法错误,因为我检查了它作为预防措施…最简单的方法是添加将列类型设置为“结果”,以便列数相同。只要您不为类型h2提供值,就会自动为该列提供null值,这将继续给您错误。这正是我告诉他的,但用户不相信这些答案