插入的 BIGINT 与 SQL 数据库中显示的不同
Posted
技术标签:
【中文标题】插入的 BIGINT 与 SQL 数据库中显示的不同【英文标题】:Inserted BIGINT is not the same as the one Shown in SQL DataBase 【发布时间】:2021-07-05 10:05:35 【问题描述】:我正在编写一个 Discord 机器人和 Twitch 机器人。 我目前正在编写一个函数来将用户 Twitch 和 Discord ID 保存在数据库中。
这是我目前的功能:
add_discord(twitch_id, discord_id)
this.get_user(twitch_id)
.then((user_data) =>
this.db.query(`UPDATE userdata SET discord_id = $discord_id WHERE identity_id = $user_data[0]`)
)
我为每个用户使用一个唯一的identity_id
。
我有控制台记录discord_id
,这是我正确的 Discord ID。但是一旦入库,数字就变了。
我的不和谐 ID 是 522855210926735422
但是数据库中显示的数字是522855210926735400
(22关正确值)
我正在为discord_id
使用 BIGINT。我之前也遇到过类似的问题,我之前通过将其存储为 VARCHAR 而不是 BIGINT 来修复它(我认为)。
任何建议都会很棒!
(这是来自查询的响应)
OkPacket
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '(Rows matched: 1 Changed: 0 Warnings: 0',
protocol41: true,
changedRows: 0
【问题讨论】:
很遗憾,我没有答案,但是有没有办法可以在执行时打印数据库查询?所以也许在 ORM 或你正在使用的任何东西中;可能在 node_modules 中 Discord ID 值太大,无法在 javascript 中视为数字。 我一直在将输入的值与数据库中的值进行比较,但看不到任何相关性 Pointy,JavaScript 可以处理的最大值是多少? 【参考方案1】:原来discord_id
对于 JavaScript 来说太大了。所以 JS 将最后一位四舍五入(因此以 00 结尾)。所以我想我只会让 discord_id 成为数据库中的字符串
【讨论】:
以上是关于插入的 BIGINT 与 SQL 数据库中显示的不同的主要内容,如果未能解决你的问题,请参考以下文章
sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度