gpt4 book ai didi

mysql - Node mysql数据在结果中被改变

转载 作者:行者123 更新时间:2023-11-29 19:35:33 24 4
gpt4 key购买 nike

我做了一个表格:

create table data_ids (id BIGINT(20) unsigned AUTO_INCREMENT PRIMARY KEY, data_id BIGINT(20) unsigned);

我向其中添加了一行,当我

SELECT * FROM data_ids;

+----+--------------------+
| id | data_id |
+----+--------------------+
| 1 | 260846479567093761 |
+----+--------------------+

正如我所料,考虑到这是我输入的信息

但是当我运行时

pool.query(`SELECT * from data_ids`, function(err, rows, fields) {
if (err) {
console.log(err);
} else {
console.log(rows);
}
});

[ RowDataPacket {
id: 1,
data_id: 260846479567093760 } ]

这里到底发生了什么?为什么data_id改变了?

最佳答案

By default mysql will automatically cast values to an appropriate JavaScript type 。对于数字类型,它将转换为 JavaScript 数字。

问题在于 JavaScript 只能准确表示 Number.MAX_SAFE_INTEGER (9007199254740991) 以内的整数,并且您的列值超出了此最大值。您可以通过在连接或查询配置中设置 typeCast: false 来禁用自动类型转换或者您可以提供自己的函数来转换您认为合适的值。

关于mysql - Node mysql数据在结果中被改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41577302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com