From ba086d8009fc2532e8fc59fc3444b42de2d55bb7 Mon Sep 17 00:00:00 2001 From: ChangRui-Ryan Date: Tue, 4 Nov 2025 17:18:30 +0800 Subject: [PATCH 1/3] MySQL compatibility about decimal insert through jdbc --- develop/dev-guide-sample-application-java-jdbc.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/develop/dev-guide-sample-application-java-jdbc.md b/develop/dev-guide-sample-application-java-jdbc.md index 31e6d04777e7..f4fb5920cba9 100644 --- a/develop/dev-guide-sample-application-java-jdbc.md +++ b/develop/dev-guide-sample-application-java-jdbc.md @@ -280,6 +280,13 @@ Java 驱动程序提供对数据库的底层访问,但要求开发者: - 减少管理连接和事务的[模板代码](https://en.wikipedia.org/wiki/Boilerplate_code) - 使用数据对象代替大量 SQL 语句来操作数据 +### MySQL 兼容性 +当写入 DECIMAL 类型的数据时,如果小数位数超过字段定义的小数位数,无论超过多少,MySQL 都会执行 `TRUNCATE` 并插入成功。 +在 TiDB v8.5.3 及之前版本中: +- 如果小数位数超过字段定义的小数位数但未超过 72 位,同样会执行 `TRUNCATE` 并插入成功。 +- 如果小数位数超过 72 位,写入会失败并报错。 +从 TiDB v8.5.4 开始,TiDB 的行为和 MySQL 保持一致,即无论小数位数超过多少,都会执行 `TRUNCATE` 并插入成功。 + ## 下一步 - 关于 MySQL Connector/J 的更多使用方法,可以参考 [MySQL Connector/J 官方文档](https://dev.mysql.com/doc/connector-j/en/)。 From bf3288e2c62454e31a029dfc9c098bbe0c99ed94 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 4 Nov 2025 17:39:57 +0800 Subject: [PATCH 2/3] Update develop/dev-guide-sample-application-java-jdbc.md --- develop/dev-guide-sample-application-java-jdbc.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/develop/dev-guide-sample-application-java-jdbc.md b/develop/dev-guide-sample-application-java-jdbc.md index f4fb5920cba9..8289f9168ae2 100644 --- a/develop/dev-guide-sample-application-java-jdbc.md +++ b/develop/dev-guide-sample-application-java-jdbc.md @@ -281,10 +281,14 @@ Java 驱动程序提供对数据库的底层访问,但要求开发者: - 使用数据对象代替大量 SQL 语句来操作数据 ### MySQL 兼容性 + 当写入 DECIMAL 类型的数据时,如果小数位数超过字段定义的小数位数,无论超过多少,MySQL 都会执行 `TRUNCATE` 并插入成功。 + 在 TiDB v8.5.3 及之前版本中: + - 如果小数位数超过字段定义的小数位数但未超过 72 位,同样会执行 `TRUNCATE` 并插入成功。 - 如果小数位数超过 72 位,写入会失败并报错。 + 从 TiDB v8.5.4 开始,TiDB 的行为和 MySQL 保持一致,即无论小数位数超过多少,都会执行 `TRUNCATE` 并插入成功。 ## 下一步 From 5e2b2f9965c7aaa606d84dbbc2dbd0e295476675 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 5 Nov 2025 15:58:10 +0800 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Grace Cai --- develop/dev-guide-sample-application-java-jdbc.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/develop/dev-guide-sample-application-java-jdbc.md b/develop/dev-guide-sample-application-java-jdbc.md index 8289f9168ae2..d7116b92f072 100644 --- a/develop/dev-guide-sample-application-java-jdbc.md +++ b/develop/dev-guide-sample-application-java-jdbc.md @@ -282,14 +282,14 @@ Java 驱动程序提供对数据库的底层访问,但要求开发者: ### MySQL 兼容性 -当写入 DECIMAL 类型的数据时,如果小数位数超过字段定义的小数位数,无论超过多少,MySQL 都会执行 `TRUNCATE` 并插入成功。 +在 MySQL 中,当写入 `DECIMAL` 类型的数据时,如果小数位数超过字段定义的小数位数,无论超出多少,都会自动截断多余的位数并成功插入。 在 TiDB v8.5.3 及之前版本中: -- 如果小数位数超过字段定义的小数位数但未超过 72 位,同样会执行 `TRUNCATE` 并插入成功。 +- 如果小数位数超过字段定义的小数位数但未超过 72 位,同样会自动截断多余的位数并成功插入。 - 如果小数位数超过 72 位,写入会失败并报错。 -从 TiDB v8.5.4 开始,TiDB 的行为和 MySQL 保持一致,即无论小数位数超过多少,都会执行 `TRUNCATE` 并插入成功。 +从 TiDB v8.5.4 开始,TiDB 的行为和 MySQL 保持一致:无论小数位数超过多少,都会自动截断多余的位数并成功插入。 ## 下一步