首页 > 解决方案 > 插入的 BIGINT 与 SQL 数据库中显示的不同

问题描述

我正在编写一个 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 关正确值)

我正在使用 BIGINT 的discord_id. 我之前也遇到过类似的问题,我之前通过将其存储为 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
}

标签: javascriptmysqldiscord.js

解决方案


原来discord_id对于 JavaScript 来说太大了。所以 JS 将最后一个四舍五入为数字(因此以 00 结尾)。所以我想我只会让 discord_id 在数据库中成为一个字符串


推荐阅读