在 H2 中的重复密钥更新功能上



我使用 H2(Embedded) 开发了 Java 桌面应用程序。我只是对数据库有基本的了解,所以我简单地安装了 H2 并创建了一个名为 RecordAutomation 的架构,然后将表添加到该架构中。现在我正在尝试对一个特定的表使用重复键更新功能,该表不起作用,导致SQL语法错误,我检查我的查询,我发现它是正确的,如下所示

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

我搜索并尝试解决此问题,例如此功能不适用于非默认表。 我不知道默认和非默认。 请帮助我

你需要使用 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;

最新更新