为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:银河麒麟V10 SP1
【CPU】:
【问题描述】*:在服务器A建表时id类型选择为BIGINT类型,默认精度(长度)是19位,在使用19位雪花id插入数据时,新增失败报错。查看表结构时发现,精度为8,且无法修改精度,修改类型时选择BIGINT,精度再次显示为19,确认修改后,查看精度还是8,仍然无法插入。
设置为NUMERIC类型后把标度设置为0,可以插入数据,但查询时从第17位开始数值为0,例如1234567891234567891查询时为1234567891234567000。
在服务器B(Linux x86_64)上BIGINT类型精度却可以是19,正常插入。
我有个猜测,在定义界面,显示BIGINT类型精度为19,是mamager或JDBC驱动中对BIGINT类型的参数设置,这个精度应该是指带符号的64位长整型除符号位外最大数值的长度
而重新打开定义界面后显示精度为8,是值BIGINT类型数据的存储长度,也就是8个字节长度
这个我觉得要是在定义界面上把精度和存储宽度分开成两列或许更好理解些