我使用 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;