经验-总结1

IDEA debug启动慢

断点先全部关了

group_concat的长度限制

现象:roleNames直接会截取到默认的 group_concat的长度限制设置(1024字节)
select group_concat(role.rolename) as roleNames, group_concat(role.roleId) as roleIds
from PUB_USER_ROLE_LINK p,
PUB_ROLE_INFO role
查看数据库中group_concat_max_len的大小。
show variables like ‘group_concat_max_len’;
解决:
1.更改group_concat_max_len的值
你可以通过更改group_concat_max_len的值来增加group_concat的长度限制。你可以在MySQL配置文件中设置这个值,或者在会话级别或者全局级别动态地更改它。例如:
SET SESSION group_concat_max_len = 102400;
2.先查出来在java拼接、

mysql时间尽量使用datetime

MySQL的time只能保存00:00-59:59:59
如果在需求中需要24点这种东西 那就必须需要日期 只有时间不行

写脚本时使用了 insert ignore into 需要注意的一些问题

忽略插入
在做数据库数据迁移 大量插入数据的时候
insert ignore into的原理是根据“唯一索引"(或者主键):如果存在,原先对应的主键或者唯一键,不管其他字段的值有无变化,之前对应的这条数据都不会变化。
优点是:可以保证数据的幂等 也就重复主键的数据不会插入 也不会报错
缺点是:在某些字段 我们没有set,但是数据库字段not null 非空,他也会帮我们set一个字段类型的默认值,比如bigint:0
特别需要注意: 比如下面sql
a_table原来是空表 有一个id字段是主键
INSERT IGNORE INTO a_table (logId,teamId,createTime,modifyTime,isDel,company) + ‘VALUES ?’, [a,b,c,d,e,f]);
INSERT IGNORE INTO a_table (logId,teamId,createTime,modifyTime,isDel,company) + ‘VALUES ?’, [a1,b1,c,d,e,f]);
INSERT IGNORE INTO a_table (logId,teamId,createTime,modifyTime,isDel,company) + ‘VALUES ?’, [a2,b2,c,d,e,f]);
INSERT IGNORE INTO a_table (logId,teamId,createTime,modifyTime,isDel,company) + ‘VALUES ?’, [a3,b3,c,d,e,f]);
a_table 实际上有一个id字段是主键 。没有其他唯一索引,在这里并没有set Id=XX
但是当我们执行这个4条sql的时候 会插入一条id为0的记录,因为第一条默认赋给了id为0,然后第2,3,4条也是赋给了id为0,但是id重复,所以没插入进来,也没报错!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值