gpt4 book ai didi

java - MariaDB 10.2,jdbcCompliantTruncation = false 不起作用

转载 作者:行者123 更新时间:2023-11-30 05:23:29 33 4
gpt4 key购买 nike

我们已从 MariaDB 10.0 迁移到 10.2,现在面临与列数据过长相关的问题

我们在 MariaDB 10.0 的数据库连接字符串中使用 jdbcCompliantTruncation=false,它有助于截断列的长值,并且没有观察到下面提到的异常

MariadDb 10.2 中遇到异常

           org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; 
SQL [insert into table(column1,column2) values(?,?,?)(conn=21823) Data too long for column 'column2' at row 1; nested exception is java.sql.BatchUpdateException: (conn=21823) Data too long for column 'column2' at row 1
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1402)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:620)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:634)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:924)

MariaDB 10.2 中有什么变化或者我遗漏了一些东西。任何朝这个方向的指示都将受到高度赞赏。

最佳答案

最后,通过更改 MariaDB 10.2 的 SQL 模式解决了该问题

SQL MODE 的默认值可以通过以下命令确定

SELECT @@SQL_MODE;

它返回以下内容

STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO , NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

现在的问题是 jdbcCompliantTruncation如果服务器 sql-mode 包含 STRICT_TRANS_TABLES,则无效。

解决方案是更新SQL_MODE

  SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

关于java - MariaDB 10.2,jdbcCompliantTruncation = false 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59112495/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com