如何修复MySQL-Connector插入Discord用户ID的异常问题?
解决Discord用户ID写入MySQL被截断为2147483647的问题
问题原因
你看到的2147483647是MySQL INT类型的最大值,出现这个异常的核心原因是:
- Discord用户ID是18位左右的64位整数,而你的
users表中id字段用的是INT类型,该类型的存储范围仅为-2147483648到2147483647,远小于Discord用户ID的数值,导致插入时数值被自动截断为INT的最大值。
解决步骤
- 修改数据库表字段类型
将users表的id字段类型改为BIGINT(如果不需要存储负数ID,推荐用BIGINT UNSIGNED,存储范围更大),执行以下SQL命令:-- 普通BIGINT(支持正负数值) ALTER TABLE users MODIFY COLUMN id BIGINT NOT NULL; -- 无符号BIGINT(仅支持非负数值,更匹配用户ID场景) -- ALTER TABLE users MODIFY COLUMN id BIGINT UNSIGNED NOT NULL; - 验证修复效果
重新执行你的插入代码,此时数据库就能正确存储完整的Discord用户ID了。
补充提示
所有平台的大数值ID(比如Discord、Twitter、TikTok的用户/内容ID)都不适合用INT存储,优先选择BIGINT类型可以避免类似的溢出截断问题。
内容的提问来源于stack exchange,提问作者Stanislav
相关产品推荐
相关产品推荐

