如何在MYSQL数据库中保存很长的整数数据

Posted

技术标签:

【中文标题】如何在MYSQL数据库中保存很长的整数数据【英文标题】:How to save a very long integer data in the MYSQL Data base 【发布时间】:2021-08-28 23:37:18 【问题描述】:

我使用具有 265(或更多)位密钥的加密算法并尝试将加密数据保存到数据库中,我的加密数据是一个非常大的整数。尝试将其保存在 mysql 数据库服务器中时遇到问题。数据保存在数据库字段中为'9'的连续。注意我的数据库中所有字段的类型都是VARCHAR(),这是确定字段类型的代码“

     DB_Columns="(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,CredtNo VARCHAR(700),Fname VARCHAR(700), Lname VARCHAR(700),  Balance VARCHAR(1000) )"

而使用python插入加密数据的语句是:

    insert_stmt = (f"INSERT INTO Tname (PhoneNo,CryptoPhon, Fname, Lname, Balance ) VALUES (%s, %s, %s, %s, %s)")

    Cursor.execute(insert_stmt, Record)  # Executing the SQL command

请注意,记录是我的加密数据,要保存在我的数据库中的值之一是: (2175317202645953348971113133719362660225751942313095427832814482408365145539992811710213981089606200860357565008258095906567757394686551412950904123490993298692780332626039419440732654731110306170537866185857978741870335596755093012097029150)类型整数的 P>

现在,当我想从数据库中检索我的加密数据时,它将是这样的: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 ......... 99'

我能知道是什么问题,以及如何解决吗?

【问题讨论】:

错误是什么?创建 Record 参数的代码是什么?当 MySQL 尝试将 Record 的元素转换为字符串时,可能会出现问题。 二进制数据应该是VARBINARY,而不是VARCHAR 我把数据库中的加密数据保存为整数,而不是二进制值,你觉得转换成二进制能解决问题吗? 【参考方案1】:

我对 MySQL 不太熟悉,但也许你可以使用 VARBINARY 或类似 BLOB 的数据类型。

【讨论】:

以上是关于如何在MYSQL数据库中保存很长的整数数据的主要内容,如果未能解决你的问题,请参考以下文章

mysql对于很长的字符列的索引方案

如何在 Oracle 中读取很长的 BLOB 列?

如何优化很长的JSON数据?

无法在 MySQL 语法错误中运行查询意外

保存拍摄时间很长的照片

如何优化很长的 JSON 数据