nested exception is java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
时间: 2023-11-22 19:49:14 浏览: 160
这个错误通常是由于MySQL版本的更改导致的。在MySQL 5.6.3之前,InnoDB存储引擎的索引键长度限制为1000字节。从MySQL 5.6.3开始,InnoDB存储引擎的索引键长度限制为3072字节。如果您的MySQL版本大于5.6.3,则可以使用以下方法解决此问题:
1.在MySQL配置文件中添加以下行:
```ini
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true
```
2.在创建表时指定ROW_FORMAT=DYNAMIC或ROW_FORMAT=COMPRESSED。例如:
```sql
CREATE TABLE mytable (
id INT NOT NULL,
data VARCHAR(2000),
PRIMARY KEY (id)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
```
如果您的MySQL版本低于5.6.3,则可以使用以下方法解决此问题:
1.在创建表时缩短索引键的长度。
2.使用前缀索引。例如:
```sql
CREATE TABLE mytable (
id INT NOT NULL,
data VARCHAR(2000),
INDEX (data(100)),
PRIMARY KEY (id)
) ENGINE=InnoDB;
```
阅读全文