关于mysql变量不能赋值为中文的问题

今天在个人数据库上写了个存储过程,

drop procedure if exists add_student;
create procedure add_student(
)
 sql security INVOKER
begin 
-- ============================
-- 为student表插入数据
-- ============================

declare v_sex varchar(5) ;
set  v_sex = '男';
insert into student(sex)  values (v_sex);

end;

call add_student;

调用结果为:
在这里插入图片描述
数据库竟然不能识别!
后来修改了数据库的默认字符集为utf8,才解决了这个问题。
问题的排查难点在于我的student表字符集设置为utf8,直接往表里插入中文是没问题的。但是将中文赋值为变量,再插入变量就会出问题。
总结:数据库的字符集也要进行修正,因为会影响变量的赋值结果。

你可能感兴趣的:(mysql)