Как перестать округлять значения int в MySQL - PullRequest
3 голосов
/ 04 августа 2020

Я разработчик бота Discord. Я пытаюсь использовать MySQL для своего бота Discord. Я пытаюсь сохранить идентификаторы гильдий в своей таблице. Идентификаторы гильдии округляются автоматически, когда я отправляю сообщение на стол. Например, мой идентификатор гильдии 837465019283745861 . Это сообщение типа 837465019283745900 . Я использую модуль mysql.

Моя таблица:

CREATE TABLE guilds (
id INT PRIMARY KEY AUTO_INCREMENT,
guild_id BIGINT(18) NOT NULL);

Мой почтовый индекс:

const guild = 837465019283745861;
connection.query('INSERT INTO guilds (guild_id) VALUES (?)', guild, function(error, results, fields) {
    if (error) throw error;
    console.log('Data sent!');
});

1 Ответ

4 голосов
/ 04 августа 2020

Эти значения не округляются до MySQL. Это JavaScript лажает с вами, потому что вы не используете BigInt:

const guild = 837465019283745861n;

Все числа в JavaScript на самом деле являются числами с плавающей запятой, если не указано иное. Это приводит к округлению больших чисел.

...