插入UUID,出现Data truncation: Data too long for column 'id' at row 1
ssc.udf.register("getuuid", () => UUID.randomUUID().toString)
val stuPCountDF_tmp1=ssc.sql("select * from stuPCountDF_tmp1 where stuId!='null' order by stuId").distinct()
.selectExpr("getuuid() as id","" ,....)
val dbInfo = XMLUtil.getDBProperties()
val dbConn = dbInfo._1
val dbProp = dbInfo._2
val conn: Connection = XMLUtil.getConnection
val basePsy = conn.createStatement()
try {
basePsy.executeUpdate(s"DELETE FROM edu_grade")
} finally {
basePsy.close()
}
stuPCountDF_tmp1.repartition().write.mode(SaveMode.Append).jdbc(dbConn, "psychology", dbProp)
结果出现:
Data truncation: Data too long for column 'id' at row 1
Caused by: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.DataException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:639)
at
Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column 'id' at row 1
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1269)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:955)
at
查询得知:
如题:错误并不是因为字段过长而导致出错的,
1. 可能是因为数据库里的表设置的字符集不相同。
2. 也可能真是数据库字段里数据库确实过长(我是遇到的这种情况)。
例如:在同一个数据库中,存在utf8的表,也存在gbk_chinese_ci的表。
解决办法:alter table `cms_activity_test` convert to character set gbk collate gbk_chinese_ci;(单独修改指定表的字符集)
补充:通过在网上查找资料,一般都是修改数据库MySQL的默认字符集和修改单个数据库的字符集
1。 在Mysql数据库目录下找到my.ini文件,然后Ctrl+F查找character-set,修改

[client] port=3306 [mysql] default-character-set=utf8

2. 修改单个数据库字符集,data目录下找到db.opt文件,然后修改
default-character-set=gbk
default-collation=gbk_chinese_ci
3. 用命令设置

mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;

4. 如果还嫌太麻烦了,就用一个蠢办法,如果整个数据库表不多且数据量不大的情况下,就将整个库导出,然后再去修改文件中字符集不一的表,最后再导入数据库。。。
插入UUID,出现Data truncation: Data too long for column 'id' at row 1的更多相关文章
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'createtime' at row 1...
之前项目一直好好的,之后电脑重装系统,数据库重新安装了一个5.6版本的,项目jar包丢失了,之后就又重新找了一些jar包倒入,结果运行报错: Caused by: com.mysql.jdbc.Mys ...
- ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] - Data truncation: Incorrect datetime value: '' for column 'pubdate' at row 1
之前的Connector/J版本是:mysql-connector-java-5.0.4-bin.jar 后来换成mysql-connector-java-5.1.45-bin.jar,问题解决 20 ...
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'content' a
1.错误描述 org.hibernate.exception.DataException: could not execute statement at org.hibernate.exception ...
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'img' at row 1故障
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'img' at ro ...
- com.mysql.jdbc.MysqlDataTruncation:Data Truncation:Data too long for column '字段name' at row 1
1.问题描述: 在mysql插入数据的时候报错:Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long fo ...
- Data truncation: Data too long for column 'gender' at row 1 出现的原因
创建数据库的代码如下: create database day15 ; use day15 ; create table customer( id varchar(100) primary key, ...
- Data truncation: Data too long for column 'content' at row 1
项目运行报错: Data truncation: Data too long for column 'content' at row 1 是由于字段长度太小导致的 搜索mysql 中text 字段长度 ...
- 数据库报错com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'ua' at row 1
记一次报错记录,成长路上的点滴 明明使用浏览器或者微信开发工具调试接口没有问题,但是在真机测试时候就出问题了.(((¬_¬)) 500服务器内部错误,要死的节奏啊 登陆tomcat服务器 使用命令ta ...
- Data truncation: Out of range value for column 'id' at row 1 ### The
org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: com.mys ...
随机推荐
- MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹
为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...
- Major GC 是清理老年代。 Full GC 是清理整个堆空间—包括年轻代和老年代。
Major GC 是清理老年代. Full GC 是清理整个堆空间—包括年轻代和老年代.
- java编码问题总结
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 第二篇:JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换 第三篇:J ...
- pom-4.0.0.xml中心仓库
<!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreeme ...
- 一个VLAN配置的实际例子
背景很简单,和一般的eth-switch通过VLAN做成路由的方式一样. 首先看一种硬件效率较高的方法: Port1~4作为access口,同时在硬件上作为用户模式,即从PC发往这些端口的数据 ...
- Android中RelativeLayout和LinearLayout性能分析
先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 a ...
- 两个List循环
package execise; import java.util.ArrayList; import java.util.List; import domain.User; public class ...
- go语言基础之切片的创建和截取
1.切片的创建 示例: package main //必须有个main包 import "fmt" func main() { //切片和数组的区别 //数组[]里面的长度时固定的 ...
- Winform中产生验证码图片
1.创建ValidCode类: public class ValidCode { #region Private Fields private const double PI = 3.14159265 ...
- Entity Framework泛型封装
Entity Framework本身的增删改查其实 已经很方便了,不过做项目的时候用的多了也就觉得有点累了,每个业务实体基本上都涉及到到了增删改查这四个基本的要素,至于封装每个公司可能都不一样,接口, ...