为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
SQL> select * from v$version;
行号 BANNER
1 DM Database Server 64 V8
2 8.4
3 企业版
4 DB Version: 0x7000d
5 03134284368-202xxxxxxxx-xxxxxxxx
6 Msg Version: 44
7 Gsu level(5) cnt: 0
7 rows got
【操作系统】:
cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Halberd)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)" ANSI_COLOR="0;31"
【CPU】:
【问题描述】*:问题为偶现,使用snow生成的id字段(int类型:生成的数字是19位)写入到dm之后,在DBeaver客户端查询id是 123(正确的),但是通过python代码查询出来的id变成了122(123-1)。 重新生成一个id 321, 通过python代码查询出来id是321(正确)。没有明显规律
查询请求端环境等信息
windows 10企业版
python 3.12.10
dmPython 2.5.22
sqlalchemy 2.0.44
sqlmodel 0.0.27
snowflake 1.0.2
服务器部署的也有该问题,服务器信息
uname -a Linux caas-test-uat-local-master-1 4.18.0-425.3.1.el8.x86_64 #1 SMP Wed Nov 9 20:13:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux cat /etc/os-release NAME="Rocky Linux" VERSION="8.7 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" VERSION_ID="8.7"
结构体信息
-- 「SCHEMA」."http_tools" definition
CREATE TABLE 「SCHEMA」."http_tools" (
"created_name" VARCHAR(8188) NULL,
"created_id" VARCHAR(8188) NULL,
"created_at" DATETIME DEFAULT CURRENT_TIMESTAMP NULL,
"updated_name" VARCHAR(8188) NULL,
"updated_id" VARCHAR(8188) NULL,
"id" BIGINT NOT NULL,
"name" VARCHAR(8188) NULL,
CONSTRAINT CONS134241393 PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX INDEX33646423 ON 「SCHEMA」."http_tools" ("id");
生成id代码:
snow = snowflake.SnowflakeGenerator(random.randint(1, 100))
http_tools = HttpTools()
http_tools.name = "xxxx"
http_tools.id = snow.__next__()
数据写入和查询均使用sqlalchemy
demo:
id: 7396471529468551168 ,这个查询是ok的,
id: 7396470499397820417, 这个查询是7396470499397820416

补充:
上述代码:
单表查询,条件只有id=7396379298237718529
查询出来的row中显示id=7396379298237718528