GVKun编程网logo

SSM-物流管理常见问题1Data truncation: Incorrect datetime value: '''' for column ''posttime'' ...

9

本文将介绍SSM-物流管理常见问题1Datatruncation:Incorrectdatetimevalue:''''forcolumn''posttime''...的详细情况,。我们将通过案例分析

本文将介绍SSM-物流管理常见问题1Data truncation: Incorrect datetime value: '''' for column ''posttime'' ...的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP ...、com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...、Data truncated for column ''column_name'' - 如何解决MySQL报错:数据被截断、Data truncated for column ''expected_return'' at row的知识。

本文目录一览:

SSM-物流管理常见问题1Data truncation: Incorrect datetime value: '''' for column ''posttime'' ...

SSM-物流管理常见问题1Data truncation: Incorrect datetime value: '''' for column ''posttime'' ...

HTTP Status 500 – Internal Server Error


Type Exception Report

Message Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException:

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '''' for column ''posttime'' at row 1
### The error may involve com.dzx.express.mapper.ExpressMapper.insertSelective-Inline
### The error occurred while setting parameters
### SQL: insert into express      ( id,                       fromlocation,                       tolocation,                       phone,                       posttime,                       type )       values ( ?,                       ?,                       ?,                       ?,                       ?,                       ? )
### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '''' for column ''posttime'' at row 1
; SQL []; Data truncation: Incorrect datetime value: '''' for column ''posttime'' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '''' for column ''posttime'' at row 1
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)


翻了很多的原因,最开始怀疑是数据库和代码的utf-8不匹配,排除了,又怀疑是时间类型没有用转换器,排除了。最后看见了一篇博客说mysql的jar包版本可能不对,试了一下,成功了,
我的之前的jar包是mysql-connector-java-5.0.4-bin.jar换成了mysql-connector-java-5.1.7-bin.jar

就可以正常运行了


1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP ...

1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP ...

 

在数据库执行脚本文件时,执行到一半会遇到  这种问题:

 

出错处:2018-05-14 18:53:38
行号:712454
错误代码: 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

 

 

原因: 两台服务器的 mysql 版本不一致. 低版本不支持在一个表里面 有 2 个 TIMESTAMP 类型  的列.

 

我们使用 SELECT VERSION ();  来查看一下服务器的版本

 

源是使用的  5.6.16-enterprise-commercial-advanced-log

 

而目标使用的是 5.1.51-community

 

参考下面的文章

 

msyql 同步的时候报错:错误代码: 1293 Incorrect table definition;there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

 

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...

在使用mybatis的@Update注解的时候,报了一个这样的错

### Error updating database.  Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ''4028158162c347830162c347fb050000''
### The error may involve com.xwj.mapper.UserMapper.updateUser-Inline
### The error occurred while setting parameters
### SQL: UPDATE xwj_user SET last_name = ? WHERE id = 2
### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ''4028158162c347830162c347fb050000''
; ]; Data truncation: Truncated incorrect DOUBLE value: ''4028158162c347830162c347fb050000''; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ''4028158162c347830162c347fb050000''] with root cause

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: ''4028158162c347830162c347fb050000''
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3974) ~[mysql-connector-java-5.1.46.jar:5.1.46]
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912) ~[mysql-connector-java-5.1.46.jar:5.1.46]
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) ~[mysql-connector-java-5.1.46.jar:5.1.46]
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) ~[mysql-connector-java-5.1.46.jar:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486) ~[mysql-connector-java-5.1.46.jar:5.1.46]

 

调用的方法如下:

/**
     * 更新
     */
    @Update("UPDATE xwj_user SET last_name = #{lastName} WHERE id = ${id}")
    int updateUser(@Param("lastName") String name, @Param("id") String id);

在网上看了各种解决办法,有说是set语句中逗号误写成了and导致的,楼主遇到的不是这个情况

看上面的报错,以为是数据库中id字段(长度VARCHAR(32))为''4028158162c347830162c347fb050000''的这条数据长度过长导致的。于是将这条数据的id改为‘1’,一执行,发现执行成功。楼主便得意的以为是id过长导致的。

但心里也奇怪数据库明明可以放32位,为啥会报错呢?于是想一探究竟,id字段多少位时,才会报错。于是便将id改为是‘12’,然后‘123’...依次加,直到加到‘12345678901234567890123456789012’,一共32位了,仍然执行成功,这个时候楼主就懵逼了。这怎么会执行成功呢?

突然灵光一闪,观察到有没有可能是id中不是全数字导致的呢?于是将其中的一个数字改为字母,再执行就报错了。功夫不负有心人,终于找到了罪魁祸首

至于为啥id必须是纯数字,希望哪位大神在评论区留言,再次小弟谢过~

 

Data truncated for column ''column_name'' - 如何解决MySQL报错:数据被截断

Data truncated for column ''column_name'' - 如何解决MySQL报错:数据被截断

data truncated for column \''column_name\'' - 如何解决mysql报错:数据被截断

数据被截断是MySQL中经常遇到的一个错误,它通常发生在将数据插入到表中的过程中,原因是插入的数据长度超过了字段的最大长度。在这篇文章中,我们将讨论如何解决这个问题,并提供一些具体的代码示例。

首先,让我们明确一下什么是数据被截断错误。当我们在MySQL中定义表时,会为每个字段指定一个最大长度。这个最大长度限制了我们可以存储在该字段中的数据的大小。如果我们尝试插入的数据长度大于字段的最大长度,MySQL会报错并将数据截断到最大长度,然后继续执行插入操作。这就是所谓的数据被截断错误。

那么,该如何解决这个问题呢?以下是几种常见的解决方法:

  1. 调整字段长度:最常见的解决方法是将字段的最大长度增加到能够容纳插入的数据的长度。例如,如果我们尝试插入一个长度为20的字符串到一个最大长度为10的字段中,那么我们需要将字段的最大长度增加到20或者更大。

下面是一个调整字段长度的示例代码:

ALTER TABLE table_name MODIFY column_name varchar(20);
登录后复制

在这个示例中,我们将表名为table_name的表中的字段名为column_name的字段的最大长度修改为20。

  1. 判断数据长度并截断:如果调整字段长度不是一个可行的解决方案,我们可以在插入数据之前先判断数据的长度,并在必要时将其截断到字段的最大长度。下面是一个使用Python和MySQLdb模块实现的示例代码:
import MySQLdb

# 连接到MySQL
db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="database_name")
cursor = db.cursor()

# 插入数据的函数
def insert_data(data):
    # 判断数据长度
    if len(data) > 10:
        data = data[:10]  # 将数据截断到10个字符

    # 插入数据到数据库
    query = "INSERT INTO table_name (column_name) VALUES (%s)"
    cursor.execute(query, (data,))
    db.commit()

# 调用插入数据函数
insert_data("data_to_insert")

# 关闭数据库连接
db.close()
登录后复制

在这个示例中,我们首先连接到MySQL数据库,然后定义一个插入数据的函数insert_data。在这个函数中,我们使用len函数判断插入数据的长度是否大于10,如果是,我们使用切片操作将其截断到10个字符,并将截断后的数据插入到表中。

以上是解决数据被截断错误的两种常见方法。当然,具体的解决方案取决于你的具体情况。无论采用哪种方法,重要的是要确保插入的数据不会超过字段的最大长度,以避免数据被截断错误的发生。

以上就是Data truncated for column ''column_name'' - 如何解决MySQL报错:数据被截断的详细内容,更多请关注php中文网其它相关文章!

Data truncated for column ''expected_return'' at row

Data truncated for column ''expected_return'' at row

数据插入违规,不符合格式

关于SSM-物流管理常见问题1Data truncation: Incorrect datetime value: '''' for column ''posttime'' ...的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP ...、com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value:...、Data truncated for column ''column_name'' - 如何解决MySQL报错:数据被截断、Data truncated for column ''expected_return'' at row等相关内容,可以在本站寻找。

本文标签: