我有下面的实体
源数据
{
"$ids": [
"~:xyz:431-35033464"
],
"_deleted": false,
"_hash": "8717270a4d9d367022ae1aac1c0796be",
"_id": "mips-company:431-35033464",
"_previous": 11461,
"_ts": 1561267134181856,
"_updated": 13577,
"xyz:CompanyId": 12345678,
"xyz:CompanyName": "Zoouid",
"xyz:CompanyNo": "ZD",
"xyz:ProjectId": 143,
"rdf:type": "~:xyz:Company"
}需要的是在将这些数据填充到GCP托管的sql实例之前,一个id属性(列是一个32位的INT,当我们将这两个属性合并到64位的BIGINT时),使用shift操作创建一个ProjectId和CompanyId的组合,
早些时候,我尝试连接并转换回整数,但得到了一个错误,没有超出范围,所以系统所有者想要shift操作,而且由于在sesam中没有这个操作,他建议使用乘法和指数来实现(不确定它是否真的解决了这个问题)。(143 * 2^32 + 12345678)我们仍然超出了范围。
输出如下-
[
{
"_id": "mips-company:431-35033464",
"company-xyz:comp_number": "ZD",
"company-xyz:id": 614192669006,
"company-xyz:name": "Zoouid",
"company-xyz:project_id": 143
}
]我还是会犯错误-
"original_error_message":"sqlalchemy.exc.DataError:(mysql.connector.errors.DataError) 1264 (22003):列'id‘在第1行超出范围值[SQL:’插入公司“(id,comp_number,name,project_id )
发布于 2019-06-28 07:38:14
据我所见,您的新ID值(614192669006)应该很适合大整数。也许数据库列仍然是int?
https://stackoverflow.com/questions/56772105
复制相似问题