Soy un desarrollador de bots de discord. Estoy tratando de usar MySQL para mi bot de discordia. Estoy tratando de guardar ID de gremio en mi tabla. Los ID de gremio se redondean automáticamente cuando publico en la tabla. Por ejemplo, mi ID de gremio es 837465019283745861 . Está publicando como 837465019283745900 . Estoy usando el módulo mysql .
Mi mesa:
CREATE TABLE guilds ( id INT PRIMARY KEY AUTO_INCREMENT, guild_id BIGINT(18) NOT NULL);Mi código postal:
const guild = 837465019283745861; connection.query('INSERT INTO guilds (guild_id) VALUES (?)', guild, function(error, results, fields) { if (error) throw error; console.log('Data sent!'); });Esos valores no se redondean en MySQL. Eso es JavaScript jodiéndote porque no estás usando BigInt :
const guild = 837465019283745861n;Todos los números en JavaScript son en realidad coma flotante a menos que se especifique lo contrario. Esto lleva a redondear números más grandes.
Para resolver esto, agregue 'supportBigNumbers' a su MySQL con
Ejemplo:
const database = { host: env.db_host, port: env.db_port, user: env.db_user, password: env.db_password, database: env.db_name, supportBigNumbers: true // BigInt not rounded now };Vea más en: https://www.npmjs.com/package/mysql#getting-the-id-of-an-inserted-row