字段太长,无法录入数据库
报错:
2017-03-13 10:16:43,159 ERROR [org.hibernate.util.JDBCExceptionReporter] - Data truncation: Data too long for column 'value' at row 1
2017-03-13 10:16:43,167 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.DataException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
可能的原因:
1.数据库里的表设置的字符集不相同;
2.数据字段太长。
我遇到的是第二种,将varchar改为text后,问题解决,解决方法是:在数据库里将这个字段类型设为text或者更大的longtext类型。
查看表的字符集:SHOW CREATE TABLE cmf_party;
查看列的字符集:SHOW FULL COLUMNS FROM cmf_party;
查看数据库的字符集:SHOW CREATE DATABASE xingfu;
如果是第一种,则先修改数据库默认编码:
ALTER DATABASE `xingfu` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的编码:ALTER TABLE `表名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表字段的编码ALTER TABLE `表名` CHANGE `字段名` `字段名` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
查看你表的编码和表中字段的编码格式:在表上点击右键——表讯息——DDL 可以看到表和字段的编码格式,要是跟你配置文件中的不一致的话修改就OK了,修改方法:在表上点击右键——设计表——选项——字符集 ,然后点击你表中的每个字符串字段,查看下面的字符集编码是否一致。
字段太长,无法录入数据库相关推荐
- 如何解决动态查询语句太长,大于数据库字符的最大长度
上周,在写sql server2005数据库存储过程的时候,用到了动态查询语句,但是由于语句太长,定义的变量最长为varchar(8000),在字符串大于8000的时候,数据库会做截断,进而在执行动态 ...
- Laravel 5.4: 特殊字段太长报错 420000 字段太长
laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持.如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情. 当你试着在一些MariaDB或者一些 ...
- 【解决方案】Oracle插入/更新CLOB字段报ORA-01704:字符串文字太长
[解决方案]Oracle插入/更新CLOB字段报ORA-01704:字符串文字太长 解决办法: 1.如果插入的SQL比较少,那么可以人工处理.方法是使用PLSQL Developer软件,命令为:se ...
- 运维手册——Mysql索引字段长度太长报错
声明:这是我在大学毕业后进入第二家互联网公司学习的内容 背景 Mysql执行Create Table语句时报错 Specified key was too long; max key length i ...
- oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...
本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...
- mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
本文来自微信公众号 继续回答星球水友提问: 沈老师,我听网上说,MySQL数据表,在数据量比较大的情况下,主键不宜过长,是不是这样呢?这又是为什么呢? 这个问题嘛,不能一概而论: (1)如果是Inno ...
- mysql 表列数 字段数 太多_数据库字段太多有什么问题
[ 在 Knightmare (梦醒时分) 的大作中提到: ] : 标 题: Re: 数据库字段太多有什么问题 : 发信站: 水木社区 (Sat Jul 30 14:35:23 2011), 站内 ...
- oracle字段大段字符串,ORACLE存储过程,参数目字符串太长
ORACLE存储过程,参数字符串太长 在做存储过程开发的时候,需要拼SQL语句,比如 DECLARE V_SQL VARCHAR2(32000); BEGIN V_SQL := 'INSERT INT ...
- datagrid如何获取一行数据中的某个字段值_使用Mysql 数据库 新手常见问题
松勤软件测试 坚持教育初心 既问收获也问耕耘 平时用惯了 SQL Server 和 Oracle,基本语法已定型,导致在Mysql数据库操作时经常会报错 1.mysql 中如果字段是字符类型(含中文) ...
最新文章
- SDWC2017游记
- java实现大整数的加减乘除法(百练OJ:2736、2737、2980、2981)
- Linux 添加新用户账号并赋予root权限
- Thread 线程同步、线程状态
- delphi 更改DBGrid 颜色技巧
- python语言的主网址-Python爬取网址中多个页面的信息
- React-Native入门指南——第七篇动手写组件
- 转载:SQL入门教程
- linux快速解压缩,快速了解linux压缩与解压
- 图书信息管理系统(一)
- 软件测试面试题之非技术面试(GZH:软件测试大本营)
- 国产数据库---GBase进入Gartner DMSA魔力象限
- ubuntu 18.04 使用intel核显画面撕裂解决办法
- 改变 el-dialog 的宽度
- Unity3D之协程(Coroutines Yield )
- 大学c语言基础 Turbo C2.0 (32位/64位通用)
- Android源代码编译的准备工作
- Java面试题目,CAS都不了解,你还怎么看J-U-C不可思议!
- python有四个数字_Python生成0-9任意4位数字组合的方法
- 第二篇 树莓派基本外设基础篇
热门文章
- 中移M5310-A通过AT指令MQTT连接阿里云物联网平台并进行数据互传
- 短信验证码泄露怎么办?
- 《淘宝大学-电商运营管理》
- 中国大学排名定向爬虫以及淘宝商品爬虫参考嵩天老师Python爬虫课程遇到的问题及解决
- 服务窗 菜单 php,支付宝服务窗API接口开发php版本
- AutoHotKey 操作鼠标进行移动托动点击
- 一个ICESat-2数据下载的保姆教程(downthemall)
- 《选择卓越的“政治”》---诺贝尔奖的见不得人的一面
- ST2921B燃料电池双极板炭纸垂直电阻率测试仪炭纸接触电阻测试仪
- Nginx配置SSL证书(CentOS环境),实现https请求