作家
登录

MySQL数据库的“十宗罪”(附10大经典错误案例)

作者: 来源: 2017-09-01 09:50:24 阅读 我要评论

) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8  

插入三条数据:

  1. mysql> insert into t (b) values ('aa'); 
  2.  
  3. Query OK, 1 row affected (0.00 sec) 
  4.  
  5. mysql> insert into t (b) values ('bb'); 
  6.  
  7. Query OK, 1 row affected (0.00 sec) 
  8.  
  9. mysql> insert into t (b) values ('cc'); 
  10.  
  11. Query OK, 1 row affected (0.00 sec) 
  12.  
  13. mysql> select * from t; 
  14.  
  15. +-----+------+ 
  16.  
  17. | a   | b    | 
  18.  
  19. +-----+------+ 
  20.  
  21. | 300 | aa   | 
  22.  
  23. | 301 | bb   | 
  24.  
  25. | 302 | cc   | 
  26.  
  27. +-----+------+ 
  28.  
  29. rows in set (0.00 sec) 

MySQL数据库的“十宗罪”(附10大年夜经典缺点案例)

先用 delete 进行删除全表信息,再插入新值。

结不雅发明 truncate 把自增初始值重置了,自增属性大年夜 1 开端记录了。当前端用主键 id 进行萌芽时,就会报没有这条数据的缺点。

小我建议不要应用 truncate 对表进行删除操作,固然可以收受接收表空间,然则会涉及自增属性问题。这些坑,我们不要随便马虎钻进去。

主大年夜复制报错类型

有同窗经常会问,为什愦我的数据库总会出现中文乱码的情况。一堆中文乱码不知道怎么回事?当向数据库中写入创建表,并插入中文时,会出现这种问题。此报错会涉及数据库字符集的问题。

案例六

阿里云 MySQL 的设备文件

针对这个报错,我们起重要推敲是不是在大年夜库中误操作导致的。结不雅发明,我们在大年夜库中进行了一条针对有主键表的SQL语句的插入,导致主库再插入雷同 sql 的时刻,主大年夜状况出现异常。产生主键冲突的报错。

阿里云 MySQL 的设备文件中,须要留意一?参数设置就是:

  • lower_case_table_names = 0;默认情况。
  • lower_case_table_names = 1;是不是区分大年夜小写。

如不雅报你小写的表名找不到,那你就把远端数据库的表名改成小写,反之亦然。留意 Mybatis 的 Mapper 文件的所有表名也要响应修改。

案例七

数据库总会出现中文乱码的情况

解决思路:对于中文乱码的情况,记住师长教师告诉你的三个同一就可以。还要知道在今朝的 MySQL 数据库中字符集编码都是默认的 UTF8。

Emoji 神情符号录入 MySQL 数据库中报错:

  1. Caused by: java.sql.SQLException: Incorrect string value: '😗ðŸ...' for column 'CONTENT'

      推荐阅读

      攻击与响应:云原生网络安全与虚拟机安全

    云原生工作负载和容器本质上是不合的。人们须要懂得若何保持安然,起重要懂得赓续变更的威逼性质。那么哪个更安然:虚拟机(VM)照样容器?事实是,确保容器和云原生工作负载的安然与虚拟机不>>>详细阅读


    本文标题:MySQL数据库的“十宗罪”(附10大经典错误案例)

    地址:http://www.17bianji.com/lsqh/37079.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)