MySQL8在utf8mb4下变量赋值执行删除语句时报错Error Code: 1267

原创
2020/03/19 23:54
阅读数 1K

MySQL8建议默认字符集为utf8mb4,因为需要多张表删除同ID的关联数据,便使用定义变量方式,删除时报错如下

Error Code: 1267. Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='

应该就是等号两边的字符集不同,导致无法正常比较。终于找到解决方案如下:

SET SQL_SAFE_UPDATES = 0;
-- 初始赋值
set @orderid = '123';
-- 清理订单表
DELETE FROM order_info WHERE id = @orderid COLLATE utf8mb4_general_ci;
SET SQL_SAFE_UPDATES = 1;
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部