我使用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;
我搜索并尝试解决此问题,因为此功能不适用于非默认表。我不知道默认和非默认。请帮助我
答案 0 :(得分:15)
您需要使用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;