提问者:小点点

插入的BIGINT与SQL数据库中显示的BIGINT不相同


我正在写一个不和谐机器人和抽搐机器人。我目前正在编写一个函数,将用户的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,它是我正确的不和谐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
}

共1个答案

匿名用户

事实证明,discord_id对于JavaScript来说太大了。所以JS将最后一个舍入到数字(因此以00结尾)。所以我想我将在数据库中使discord_id成为一个字符串