zoukankan      html  css  js  c++  java
  • Mysql数据库问题

    记录关于Mysql中遇到的问题。

    问题一:后台报错:Lock wait timeout exceeded; try restarting transaction

    可能原因:数据库中数据处于只读状态,不准update。

    解决方式:杀死该项进程即可。

    具体方式:我使用的数据库可视化工具为Navicate。点击“查询” -->“新建”,然后输入语句:“select * from information_schema.innodb_trx”,这样就得到只读进程,然后找到进程id号:trx_mysql_thread_id,然后输入“kill ” +id号,即可解决此问题。

    问题二:使用gruop by时,报错this is incompatible with sql_mode=only_full_group_by

    可能原因:sql语句写法不规范导致的。具体表现是,在mysql可视化工具中,可以运行,但是在项目sql语句中就无法运行。

    解决方式:规范化书写sql语句。例如:sql语句:select 字段A   from 表a  group by 字段A,字段B  ,在可视化工具中是可以执行的,但是在项目中却会报错。规范的写法是:select 字段A,字段B  from 表a  group by 字段A,字段B。group by 后面按照那些字段分类,那么就必须要 select 那些字段。

    问题三:锁表的问题。某条sql语句执行时,会超时,并导致数据库中该条数据出现不能操作的情况,而其他sql语句可以正常执行。

    可能原因:事务的开启与关闭出现了问题。

    解决方法:应当尽量避免使用事务嵌套,尤其是不能在事务嵌套中操作同一张表,否则就容易出现这种情况。因为外层事务还未完成,就被内层事务关闭了资源。

    问题四:基本数据类型与基本封装类的区别问题。

    在项目中遇到一个问题,无法为一个int类型赋值为0,当时百思不得其解。最后才发觉是Bean对象中给该字段定义为int类型,改正为Integer包装类型,就可以赋值为0了。

    基本数据类型在mysql数据库中若为null,那么返回的默认值就是其默认返回类型,而包装类相当于对象,是可以返回null的。在实际项目中,我就利用这一点差别解决一些特定的需求。比如对数据敏感的情况下,返回null,表示没有采集到数据;返回0,则表示采集到数据,但是数据值为0,若直接定义为基本数据类型,就无法确定到底是没有采集到数据,还是数据值为零,是有一些细小的差别的。

  • 相关阅读:
    20155315 2016-2017-2 《Java程序设计》第二周学习总结
    20155315 2016-2017-2 《Java程序设计》第一周学习总结
    20155315庄艺霖第三次作业之Linux初体验
    20155315庄艺霖--对做中学的理解及对c语言和Java的看法
    20165330 实验一 Java开发环境的熟悉
    20165330 2017-2018-2 《Java程序设计》第5周学习总结
    20165330 2017-2018-2 《Java程序设计》第4周学习总结
    第四周课堂实践总结
    20165330 2017-2018-2 《Java程序设计》第3周学习总结
    20165330 2017-2018-2 《Java程序设计》第2周学习总结
  • 原文地址:https://www.cnblogs.com/momoweiduan/p/8001200.html
Copyright © 2011-2022 走看看