Skip to content

The current parser does not support multi-statement SQL parsing. Is there any alternative method to solve this problem? #1427

@tchen-coder

Description

@tchen-coder

Feature Request

SQL Query

-- SQL query
set @temp=0;
select cnt into @temp from tst ORDER BY cnt DESC LIMIT 1;
Update tst set cnt=@temp+100 where id in(10);

// Go code for parsing the SQL query
sql := "set @temp=0;select cnt into @temp from tst ORDER BY cnt DESC LIMIT 1;Update tst set cnt=@temp+100 where id in(10);"
p := parser.New()
stmtNodes, _, err := p.Parse(sql, "", "")

if err != nil {
    fmt.Println("Error parsing SQL:", err)
    return
}
for _, stmtNode := range stmtNodes {
    fmt.Println("Parsed statement:", stmtNode.Text())
}

Error parsing SQL: line 1 column 27 near "into @temp from tst ORDER BY cnt DESC LIMIT 1;Update tst set cnt=@temp+100 where id in(10);"

-- SQL for creating database table
CREATE TABLE `tst` (
    `id` int(10) DEFAULT NULL,
    `cnt` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

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