当前位置: 首页 > 知识库问答 >
问题:

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

公西俊才
2023-03-14

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

卫劲
2023-03-14

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

 类似资料:
  • 问题内容: 我正在编写一个新程序,它将需要一个数据库(SQL Server 2008)。我现在为该系统运行的所有内容都是64位的,这使我想到了这个问题。对于各种表中的所有Id列,我应该将它们全部设置为INT还是BIGINT?我怀疑该系统是否会超过INT范围,但是我认为某些较大的财务表中可能会出现这种情况。似乎INT是标准的… 问题答案: 好的,让我们快速回顾一下数学: INT是32位的,基本上为您

  • 问题内容: 我试图找出如果将主键更改为BIGINT(20)时表的性能是否会下降。目前,我正在使用INT(7),并且已经有大约 300.000个条目具有大ID(7或8位数字) 。我已经搜索了很多东西,但只发现它使用了更多的磁盘空间(这很明显)。 我所有的ID现在都有7位数字,但是我的客户希望更改为8位数字。将来我将无法轻松更改软件,因此我考虑现在使用BIGINT(20)以防万一。即使我不需要使用BI

  • A recent addition This is a recent addition to the language. You can find the current state of support at https://caniuse.com/. BigInt 是一种特殊的数字类型,它提供了对任意长度整数的支持。 创建 bigint 的方式有两种:在一个整数字面量后面加 n 或者调用 Bi

  • 本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。 1. 慕课解释 bigint 是一种基本数据类型(primitive data type)。 JavaScript 中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER。如果

  • 问题内容: 我想知道什么之间的区别,以及在…这似乎很明显,他们将允许更大的数字; 但是,我可以使一个或一个看起来似乎不一定与大小有关。 一些见识会很棒,只是有点好奇。我使用 MySQL 已有一段时间,并在选择类型时尝试满足业务需求,但是我从不理解这一方面。 问题答案: 见http://dev.mysql.com/doc/refman/8.0/en/numeric- types.html 是一个四字

  • 问题内容: 我有bigInt:我需要将其转换为。 我尝试了几种方法来做到这一点: 和: 当我发现上面的代码与like:一起使用时,通过我的bigInt我收到以下错误: 消息8115 …将表达式转换为数据类型datetime的算术溢出错误。 有谁知道如何解决吗? 问题答案: 以下是一些可以将bigint计算为日期时间的计算。 结果: 稍作改动,这些日期时间就可以被截断或四舍五入。