Character set 'utf8mb3_general_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
时间: 2023-12-26 21:06:57 浏览: 234
这个错误通常是由于MySQL的版本问题引起的。在MySQL 8.0之前的版本中,字符集只支持utf8mb3,而在MySQL 8.0及更高版本中,字符集支持utf8mb4。所以,当你在MySQL 8.0及更高版本中使用utf8mb3字符集时,它会出现这个错误。
为了解决这个问题,你可以尝试将字符集更改为utf8mb4。你可以通过修改数据库或表的字符集来实现。
例如,如果你想将数据库的字符集更改为utf8mb4,可以使用以下命令:
```
ALTER DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
如果你想将表的字符集更改为utf8mb4,可以使用以下命令:
```
ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
注意,更改字符集可能会影响现有数据,因此在执行此操作之前请备份你的数据。
相关问题
查询报错解决Character set 'utf8mb3_general_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
这个错误通常是由于MySQL数据库的字符集设置不正确导致的。建议修改数据库的字符集为utf8mb4,并将使用到的所有表和字段都修改为utf8mb4字符集。
具体步骤如下:
1. 修改MySQL服务器配置文件my.cnf,在[mysqld]节点下添加以下配置:
```
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
```
2. 重启MySQL服务,使配置生效。
3. 修改需要使用utf8mb4字符集的表和字段,例如:
```
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
```
ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
注意:如果您的MySQL版本较低,可能需要先升级MySQL版本才能使用utf8mb4字符集。
CREATE TABLE `upload_file_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', `md5` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '文件MD5值', `create_time` datetime DEFAULT NULL COMMENT '上传时间', `if_private` bit(1) NOT NULL COMMENT '文件分享权限 true 私有', `openid` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '微信openid 唯一', `sno` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '所属序列号', `source` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '源文件名', `src_file_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '文件来源(APP,WECHAT,SYSTEM)', `state` int DEFAULT NULL COMMENT '审核状态 1.通过 2.审核中 3.驳回', `url` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '文件存放路径(OSS文件key)', `parent_abs_path` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '父目录完整路径', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=191743 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC根据这个表结构生成JPA的实体类
可以根据这个表结构生成如下JPA的实体类:
```java
@Entity
@Table(name = "upload_file_info")
public class UploadFileInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "md5")
private String md5;
@Column(name = "create_time")
private Date createTime;
@Column(name = "if_private")
private boolean ifPrivate;
@Column(name = "openid")
private String openid;
@Column(name = "sno")
private String sno;
@Column(name = "source")
private String source;
@Column(name = "src_file_name")
private String srcFileName;
@Column(name = "state")
private Integer state;
@Column(name = "url")
private String url;
@Column(name = "parent_abs_path")
private String parentAbsPath;
// getters and setters
}
```
注意要在类上添加 `@Entity` 注解,指定对应的数据库表名,然后在属性上添加 `@Column` 注解,指定对应的数据库字段名。同时,主键要添加 `@Id` 注解,并且使用 `@GeneratedValue` 注解指定主键生成策略。
阅读全文