当前位置:   article > 正文

MySQL学习&Jpa_the length of param 80000

the length of param 80000

目录

一、MySQL学习

1、MySQL单字段存储大容量内容,数据过多存储错误的解决办法

2、GROUP BY /GROUP_CONCAT

3、SQL语句截取

4、upper和Lower函数

5、limit

6、replace函数

7、Mysql获取表名、创建信息,备注信息等获取

8、主外键数据批量插入获取关联ID数据


一、MySQL学习

1、MySQL单字段存储大容量内容,数据过多存储错误的解决办法

MySQL单字段存储大容量内容

Data too long for column 'abc' at row 1

解决办法:
将字段类型修改成更大的类型

字段类型类型长度空间大小
TINYTEXT256 bytes
TEXT65,535 bytes~64kb
MEDIUMTEXT16,777,215 bytes~16MB
LONGTEXT4,294,967,295 bytes~4GB

例:

代码中

  1. @Column(name = "ABC",columnDefinition="MEDIUMTEXT")
  2. private String abc;

数据库DB中直接--设计表-->修改类型就ok了

=========

columnDefinition属性表示创建表时,该字段创建的SQL语句。

需要特殊指定字段类型的情况如上。

2、GROUP BY /GROUP_CONCAT

GROUP BY 分组分割,有多个的情况,想显示这多个情况,使用GROUP_CONCAT进行显示。

GROUP_CONCAT显示的长度默认1024;如果超过就会发生截取

此时需要在数据库中做设置

  1. //临时修改,重启数据库就失效了
  2. SET GLOBAL group_concat_max_len=102400;
  3. SET SESSION group_concat_max_len=102400;
  4. //查看mysql的group_concat_max_len
  5. show variables like 'group_concat_max_len';
  6. //永久修改
  7. 修改配置文件my.ini
  8. 在[mysqlId]下面添加
  9. group_concat_max_len=4294967295
  10. 重启mysql后去检查
  11. show variables like 'group_concat_max_len';

3、SQL语句截取

  1. SUBSTR(str,pos,len)
  2. --pos可以为负数,起始值从1开始,不是0;
  3. select SUBSTR(name, 1, 5) from student;

4、upper和Lower函数

  1. SELECT UPPER(expression) FROM tab;
  2. SELECT Lower(Expression) FROM tab;

5、limit

  1. limit子句用于限制查询结果返回的数量,常用于分页查询
  2. select * from tableName limit i,n
  3. # tableName:表名
  4. # i:为查询结果的索引值(默认从0开始),当i=0时可省略i
  5. # n:为查询结果返回的数量
  6. # i与n之间使用英文逗号","隔开
  7. #
  8. limit n 等同于 limit 0,n
  9. # 查询8条数据,索引从512,第6条记录到第13条记录
  10. select * from tableName limit 5,8;

6、replace函数

  1. --修改表中某个字段中的内容
  2. '你好'修改为'你好!'
  3. update t_user set content=REPLACE(content,'你好','你好!') where content like'%你好%';

7、Mysql获取表名、创建信息,备注信息等获取

  1. SELECT
  2. table_name,
  3. table_comment,
  4. create_time,
  5. update_time
  6. FROM
  7. information_schema. TABLES
  8. WHERE
  9. table_schema = (SELECT DATABASE())
  10. AND table_name NOT LIKE 'qrtz_%'
  11. AND table_name NOT LIKE 'gen_%'
  12. AND table_name NOT IN (
  13. SELECT
  14. table_name
  15. FROM
  16. gen_table
  17. );
  18. #SELECT DATABASE()

Mysql关联表设计:考虑追加外键。

8、主外键数据批量插入获取关联ID数据

  1. drop table if exists t_sub;
  2. drop table if exists t_a;
  3. create table t_a (
  4. id bigint(20) not null auto_increment comment 'id',
  5. name varchar(30) default '' comment '名称',
  6. create_by varchar(64) default '' comment '创建者',
  7. create_time datetime comment '创建时间',
  8. update_by varchar(64) default '' comment '更新者',
  9. update_time datetime comment '更新时间',
  10. primary key (id)
  11. ) comment = 't_a表';
  12. create table t_sub (
  13. id bigint(20) not null auto_increment comment 'id',
  14. a_id bigint(20) not null comment 'a_id',
  15. name varchar(30) default '' comment '名称',
  16. create_by varchar(64) default '' comment '创建者',
  17. create_time datetime comment '创建时间',
  18. update_by varchar(64) default '' comment '更新者',
  19. update_time datetime comment '更新时间',
  20. primary key (id),
  21. CONSTRAINT `t_a_id` FOREIGN KEY (`a_id`) REFERENCES `t_a` (`id`) on DELETE CASCADE ON UPDATE CASCADE
  22. ) comment = 't_sub表';
  23. insert into t_a(name,create_by,create_time,update_by,update_time) values('名1','admin', sysdate(), '', null);
  24. SELECT @aId :=LAST_INSERT_ID();
  25. insert into t_sub(name,a_id,create_by,create_time,update_by,update_time) values('名2',@aId,'admin', sysdate(), '', null);
  26. insert into t_a(name,create_by,create_time,update_by,update_time) values('名3','admin', sysdate(), '', null);
  27. SELECT @aId :=LAST_INSERT_ID();
  28. insert into t_sub(name,a_id,create_by,create_time,update_by,update_time) values('名4',@aId,'admin', sysdate(), '', null);

不断学习才能不断提高!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/954790
推荐阅读
相关标签
  

闽ICP备14008679号