随笔分类 - 数据库 / mysql
摘要:现象是登录服务器查看服务状态依旧存活,但是页面无法访问,接口也调不通。查看日志会有如下的报错: ### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded;
阅读全文
摘要:背景 在开发中,有可能会遇到数据库一个字段存储了由分隔符分割的多个字符串,而我们需要将这些分割的字符串转为多列进行封装,下面是如何通过sql直接实现的例子。 建表test create table test ( id varchar(30) not null, name varchar(30) nu
阅读全文
摘要:背景 实际业务中大多数的表采用的都是逻辑删除,而许多业务字段比如编码之类的都要求唯一,这个时候不能使用唯一索引来做,因为可能会存在删除再次添加的情况。可以采用生成列(Generated Column)配合唯一索引来实现逻辑删除下的字段唯一。 举例,在表test_generated_column表中,
阅读全文
摘要:问题的背景是项目的架构经过了一次迁移,迁移之后实体类id的规则由之前的纯数字变成了标题的这种,问题出现在一个修改接口中,接口的用来接受id的传参是一个Long类型,然后sql执行的时候就报了这个错误,单纯看这个错误,似乎是格式的问题,但是因为我的数据表中只有一个这个类型的id,而我没改这个数据,所以
阅读全文
摘要:1. 问题背景 在一次新版本功能开发完毕,配合测试的过程中,测试反馈某个XxlJob定时任务一直执行失败,在分析了日志之后,找到了报错的原因: Packet for query is too large (7251422 > 4194304). You can change this value 是
阅读全文
摘要:only full group by问题的解约方案 这个报错的原因是,在SQL语句中,你查询的字段应该是你分组的依据,即select的column应该全部跟在group by之后。这个也和MySQL的版本有关系,MySQL5.7版本默认设置了 mysql sql_mode = only_full_g
阅读全文
摘要:背景:在开发过程中,我们经常需要根据时间作为判断条件来查询数据,例如:当月,当日,当前小时,几天内...... 1. 当月 我们只需要使用一个mysql的MONTH(date)函数即可实现。(注意判断年份) MONTH(date); -- 用法:MONTH函数返回一个整数,表示指定日期值的月份。 -
阅读全文

浙公网安备 33010602011771号