JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "UNIQUE" "UNIQUE"

Open Meow-Cat opened this issue 2 years ago • 1 comments

I tried using 3 versions: 4.5, 4.6, 4.7. I want to get table name from this sql:

CREATE TABLE `sys_user`
( 
`id` bigint NOT NULL, 
`role_id` bigint NULL, 
`name` varchar (255) NULL, 
`age` int NULL, 
`remark` longtext NULL, 
`local` varchar (255) NULL, 
`address` varchar (255) NULL, 
PRIMARY KEY (`id`) , 
UNIQUE INDEX `ina_index` (`id`,`name`,`age`) USING BTREE COMMENT 'Unique index of id, name, age', 
INDEX (`local`) USING BTREE COMMENT 'Index of local', 
FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`role_id`) 
) 

They all gave me the same error

Exception in thread "main" net.sf.jsqlparser.JSQLParserException: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "UNIQUE" "UNIQUE"
    at line 10, column 3.

Was expecting one of:

    "ACTION"
    "ACTIVE"
    "ALGORITHM"
    "ARCHIVE"
    "ARRAY"
    "AT"
    "BYTE"
    "CASCADE"

When I modify the sql

CREATE TABLE `sys_user`
( 
`id` bigint NOT NULL, 
`role_id` bigint NULL, 
`name` varchar (255) NULL, 
`age` int NULL, 
`remark` longtext NULL, 
`local` varchar (255) NULL, 
`address` varchar (255) NULL, 
PRIMARY KEY (`id`) , 
UNIQUE (`id`,`name`,`age`) USING BTREE COMMENT 'Unique index of id, name, age', 
INDEX (`local`) USING BTREE COMMENT 'Index of local', 
FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`role_id`) 
) 

The execution was successful

The difference between the two SQLs lies in the UNIQUE part

Meow-Cat avatar Nov 24 '23 06:11 Meow-Cat

Greetings,

your particular Index clause is unsupported. Please check the supported Syntax here: http://manticore-projects.com/jsqlformatter/JSQLFormatter/syntax.html#createindex

You can also test your statement online and interactively here.

manticore-projects avatar Nov 24 '23 06:11 manticore-projects