반응형
MariaDB 10.2, jdbc ComplianceTruncation=false가 작동하지 않음
MariaDB 10.0에서 10.2로 마이그레이션하여 데이터와 관련된 문제에 직면하게 되었습니다.
우리는 사용했습니다.jdbcCompliantTruncation=false
MariaDB 10.0의 DB 연결 문자열에서, 그리고 그것은 컬럼에 대한 긴 값을 자르는 데 도움이 되었고, 아래 언급된 예외는 관찰되지 않았습니다.
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 MODE를 변경하여 문제가 해결되었습니다.
SQL MODE의 기본값은 다음 명령으로 확인할 수 있습니다.
SELECT @@SQL_MODE;
다음을 반환합니다.
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO , NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
이제 문제는 서버 sql-mode에 STRICT_TRANS_TABLES가 포함되어 있으면 jdbc ComplianceTruncation이 적용되지 않는다는 것입니다.
솔루션은 SQL_MODE를 업데이트하는 것입니다.
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
언급URL : https://stackoverflow.com/questions/59112495/mariadb-10-2-jdbccomplianttruncation-false-not-working
반응형
'programing' 카테고리의 다른 글
oracle 12c - 마지막 문자 이후 문자열 선택 (0) | 2023.07.25 |
---|---|
utf8mb4를 사용하는 경우에도 테이블에 Go-buff-driver 문자열을 삽입하면 1336 오류가 발생합니다. (0) | 2023.07.25 |
NgFor에서 Ng 모델을 사용한 각도 2 - 2방향 바인딩 (0) | 2023.07.25 |
PowerShell & 출력의 개별 라인에 타임스탬프를 추가하려면 어떻게 해야 합니까? (0) | 2023.07.25 |
명령줄 출력 업데이트(즉, 진행 (0) | 2023.07.25 |