Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database H2数据库中的合并查询显示null不允许错误_Database_Merge_H2 - Fatal编程技术网

Database H2数据库中的合并查询显示null不允许错误

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表中只有一个条目,它已经

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表中只有一个条目,它已经包含了一个有效的“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值,这将继续给您错误。这正是我告诉他的,但用户不相信这些答案