在dos命令行里面INSERT中文总是报错解决办法

首先创建一个叫tdb_goods的数据表

  1、-- 创建数据表

   CREATE TABLE IF NOT EXISTS tdb_goods(
    goods_id    SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    goods_name  VARCHAR(150) NOT NULL,
    goods_cate  VARCHAR(40)  NOT NULL,
    brand_name  VARCHAR(40)  NOT NULL,
    goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0,
    is_show     BOOLEAN NOT NULL DEFAULT 1,

    is_saleoff  BOOLEAN NOT NULL DEFAULT 0

 );

OK,表创建的没有问题


2、接着往表里面写数据

先写一个字段试试

INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸笔记本','笔记本','华硕','3399',DEFAULT,DEFAULT);

敲回车键,结果总是得在报同样的错误,错误总是在提示goods_name不对,找了半天请光哥这尊大神,经过一番折腾终于找出问题,是因为test库的编码方式是latin的而不是utf8的,需要进入数据库从开始菜单里面选择MySQL-front然后打开进入mysql数据表,因为tdb_goods这个表是建在test这个库上的,所以进入mysql后在test这个库上右击然后属性,然后字符集这一项改成utf8这一项即可


把dos命令行关闭以后,再重新 net start mysql 然后mysql -uroot -proot,然后USE test,即在test库里面要建立这个表格,再把创建数据库的命令输入一遍,在MySQL-front中也属性设置了utf8,写了一行数据,仍然显示goods_name不对,这该如何是好?  经过光哥一番指导,是dos命令行里面也得设置gbk,即在命令行里面设置SET NAMES gbk;指的是在客户端的显示数据,影响的只是客户端的显示数据,而不影响数据库里面的数据。



这回真完事了!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值