MySQL创建表时提示:1067 - Invalid default value for ‘sex‘

问题:在创建表的时候如果有中文,则会提示:1067 - Invalid default value for 'sex'

比如:

-- 创建信息表
create table userInfo(
card_id int primary key auto_increment,
name varchar(20) not null,
age int not null,
sex char(2) default '男',
id_card varchar(20) unique
);

错误提示信息如下图:

原因:出错原因是因为数据库的编码不对,数据库默认编码是latin1,我们需要设置为utf8。

操作步骤分以下四步:

1. 修改数据库的默认编码,必须要找到my.ini的配置文件。

默认地址:C:\ProgramData\MySQL\MySQL Server 5.7

注意:ProgramData 文件夹是隐藏的,所以你需要到【查看】面板去勾选【隐藏的项目】去进行显示

 2. 编辑该文件,并修改这两个值为: utf8,并且进行保存

default-character-set=utf8
character-set-server=utf8

3. 关闭mysql服务,再进行重启。(2种方法)

方法一:去对应的mysql的目录(默认地址:C:\Program Files\MySQL\MySQL Server 5.7\bin),执行命令。

# 关闭服务
net stop mysql5
# 启动服务
net start mysql5

方法二:去电脑的服务当中找到对应的服务关闭并重启服务。

 4. 删除原来的数据库,再重新执行之前的SQL, 你即会发现执行成功。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值