mysql continue_MySQL Error (Always Continue)

MySQL Error (Always Continue)

其实大部分error在网上都有对应的解决办法,尤其是对Mysql这种使用范围很广的技术。自己就不为每个error单独发布博客了,仅在这里不断添加,将自己遇到过的error,error原因,以及解决过程整理于此。

Error 1366

Error情景:为varchar()类型数据新增字段的时候,明明有双引号且格式无误,但就是报错1366,无法插入。

原因:字段的字符集与传输SQL语句的字符集不想匹配。(0629)

Solution:修改字符集

方法一:仅修改该字段字符集

查看字段字符集(表名为t) SHOW full columns FROM t;

DESC t; 无法查看字符集信息

修改字段属性(即,修改字段类型) ALTER TABLE t CHANGE content content varchar(20) character SET utf8 collate utf8_unicode_ci;

当然,utf8作为我们最常用的字符集,当然不想一次次地修改。

PS.

_ci结尾的字符集“不区分大小写”, _cs结尾则区分大小写

utf8是国际编码,包含所有国家需要用到的字符

一般推荐使用utf8_unicode_ci,因为utf8_general_ci虽然校对速度快,但对德语、法语、俄语支持得不是很好,正确率较低。

方法二:修改数据库默认字符集并重启数据库

退出当前所使用的数据库 USE mysql;

查询默认字符集 SHOW variables like 'character%';

修改默认字符集(Centos7 MySQL5.7) #退出MySQL

vi /eyc/my.cnf

#添加,保存并退出

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

重启mysql systemctl restart mysqld.service

Error 1062 (23000)

Error情景:执行存储过程的时候报错(0630)

原因:之前测试的存储过程已经创建了表存储过程中要创建的表,因此就直接进行插入数据,但因为执行之前的存储过程时数据已经插入,造成了PRIMARY KEY 的重复。

Solution:删除之前存储过程创建的表,重新执行存储过程

Error 1054 (42S22)

Error情景:执行存储过程的时候报错ERROR 1054 (42S22): Unknown column 'temp_contnet' in 'field list'(0630)

原因:根本原因是表中没有这个字段,或者以变量方式插入字符类型时没有加单/双引号

Solution:在自己存储过程插入数据的一步中,为临时变量加上单引号INSERT INTO t2 (id,content) values (temp_id,'temp_contnet');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值