Skip to content

insert into ... on duplicate key ... throw exception #191

@packageOk

Description

@packageOk

Hello, when I parse a mysql which contains "on duplicate key", jsqlparser throw a exception.
There is my code:

String sql = "INSERT INTO TempPropInt0 (UserId, Key, Value) VALUES (51311, 'T_211', 18) ON DUPLICATE KEY UPDATE Value = 18;";

    Insert insert = (Insert)CCJSqlParserUtil.parse(sql);

    StringBuilder builder = new StringBuilder();
    ExpressionDeParser eDeparser = new ExpressionDeParser();
    SelectDeParser sDeparser = new SelectDeParser();
    InsertDeParser iDeParser = new InsertDeParser();

    eDeparser.setBuffer(builder);
    eDeparser.setSelectVisitor(sDeparser);
    sDeparser.setBuffer(builder);
    sDeparser.setExpressionVisitor(eDeparser);
    iDeParser.setBuffer(builder);
    iDeParser.setExpressionVisitor(eDeparser);
    iDeParser.setSelectVisitor(sDeparser);

    iDeParser.deParse(insert);
    System.out.println(builder.toString());

There is the exception:
net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:51)
at com.baitian.realtime.dc.parse.custom.CustomParserTest.test4(CustomParserTest.java:160)
...
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "ON" "ON "" at line 1, column 81.
Was expecting one of:

"RETURNING" ...

jsqlparser version is 0.9.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions