char 是定长字段,如果你已经有了数据,那么修改时,长度不能低于原有长度,比如性别,你原先定义长度是4,那么数据就是 '男 ',他会自动补上三个空格,那么再修改长度就会异常
在命令行界面你没有输入默认值吧
默认的是中文字符,那么你至少要能存放下一个中文字符才行呀
char的长度是以字节为单位的,‘男'是个中文字符占两个字节,所以你的数据库会报错,说非法默认值,因为你的设计方案是char(1)。
如果你想节约存储空间,性别可以使用Enum类型,这样的实际存储占用一个字节
男是两个字符;不是一个字符,英文字母,阿拉伯数字0-9都是一个字符,但是对于汉字来说是两个字符