在H2中的重复键更新功能

roc*_*Dev 8 sql h2

我使用H2(嵌入式)开发了java桌面应用程序.我只是掌握了有关数据库的基本知识,所以我只需安装H2并创建模式名称RecordAutomation,然后将表添加到该模式.现在我正在尝试使用ON DUPLICATE KEY UPDATE功能来处理特定的表,这个表没有给出sql语法错误,我检查我的查询我发现它是正确的,如下所示

INSERT INTO RECORDAUTOMATION.MREPORT 
(PRODUCTID ,DESCRIPTION ,QUANTITY ,SUBTOTAL ,PROFIT ) 
VALUES (22,olper,5,100,260) 
ON DUPLICATE KEY UPDATE SET QUANTITY = QUANTITY+5;
Run Code Online (Sandbox Code Playgroud)

我搜索并尝试解决这个问题,因为这个功能对非默认表不起作用.我不知道默认和非默认.请帮帮我

Tho*_*ler 17

您需要使用MySQL模式.为此,请附加;mode=MySQL到数据库URL.(此功能尚未正确记录).

该表需要具有主键或至少具有唯一索引.完整的例子:

drop table MREPORT;

set mode MySQL;

create table MREPORT(PRODUCTID int primary key, 
DESCRIPTION varchar, QUANTITY int,  SUBTOTAL int, PROFIT int);

INSERT INTO MREPORT 
(PRODUCTID ,DESCRIPTION ,QUANTITY ,SUBTOTAL ,PROFIT ) 
VALUES (22,'olper',5,100,260) 
ON DUPLICATE KEY UPDATE QUANTITY = QUANTITY+5;
Run Code Online (Sandbox Code Playgroud)