Javascript SELECT返回与my DB中显示的id不同的id
我试图创建一个表并在其中插入一些数据。首先,我知道Javascript SELECT返回与my DB中显示的id不同的id,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,我试图创建一个表并在其中插入一些数据。首先,我知道.run是异步的,所以我想没有问题,因为我在中有它们。get否则我知道会得到错误,即表在代码的第一部分不存在 那么,我的问题在哪里;我在表格中插入了一些数据,当我在电脑上用DB浏览器查看时,一切都正常!,但是,当我运行代码时,随SELECT返回的row.uid不是数组中的row.uid 我不知道这是否重要,但我尝试插入的uid是一个长整数,比如:21254513617236003,但是我返回21254513617233600,请注意3现在的结尾是
.run
是异步的,所以我想没有问题,因为我在中有它们。get
否则我知道会得到错误,即表在代码的第一部分不存在
那么,我的问题在哪里;我在表格中插入了一些数据,当我在电脑上用DB浏览器查看时,一切都正常!,但是,当我运行代码时,随SELECT
返回的row.uid不是数组中的row.uid
我不知道这是否重要,但我尝试插入的uid是一个长整数,比如:21254513617236003
,但是我返回21254513617233600
,请注意3
现在的结尾是0
。我正在使用sqlite3模块
var my_array = [uid1,uid2...];
db.serialize(function() {
db.run(`CREATE TABLE IF NOT EXISTS users (uid LONG PRIMARY KEY, value1 INTEGER, value2 INTEGER, value3 INTEGER)`);
my_array.forEach(id => {
db.get(`SELECT * FROM users WHERE uid='${id}'; `, (err, row) => {
if(row == undefined) db.run(`INSERT INTO users (uid, value1, value2, value3) VALUES ('${id}',0,0,0)`);
if(err) return;
});
});
});
//...
function my_f(uid, callback)
{
db.get(`SELECT * FROM users WHERE uid='${uid}';`, function(error, row) {
console.log(row.uid) // <----
if(row == undefined){
db.run(`INSERT INTO users (uid, value1, value2, value3) VALUES ('${uid}',0,0,0)`);
return callback([uid,0,0,0]);
}
if(error) return;
return callback([row.uid, row.value1, row.value2, row.value3]);
});
}
var my_数组=[uid1,uid2…];
序列化(函数(){
run(`CREATE TABLE IF NOT EXISTS users(uid-LONG主键,value1-INTEGER,value2-INTEGER,value3-INTEGER)`);
my_array.forEach(id=>{
db.get(`SELECT*FROM users,其中uid='${id}';`,(err,row)=>{
if(row==未定义)db.run(`INSERT-INTO-users(uid,value1,value2,value3)值('${id}',0,0,0)`);
如果(错误)返回;
});
});
});
//...
函数my_f(uid,回调)
{
db.get(`SELECT*FROM users,其中uid='${uid}';`,函数(错误,行){
console.log(row.uid)//javascript有一个数字。MAX_SAFE_INTEGER
<9007199254740991
…你已经超过了25个foldOkay,所以如果我想插入一个大于这个数字的数字,我应该怎么做?我知道有一个选项可以将该值设为字符串,并这样使用它,但我认为这根本没有效率。将UI设为字符串有什么问题D字符串?Java的UUID
包括非数字。你打算用这个UID做算术吗?@TimBiegeleisenJava
!=javascript
javascript有一个数字。MAX_SAFE_INTEGER
<9007199254740991…你已经超过了大约25个foldOkay,所以如果我想插入一个比这个数字大的数字我应该怎么做?我知道可以选择将该值设置为字符串,并这样使用它,但我认为这根本没有效率。将UID设置为字符串有什么错?Java的UUID
包括非数字。你打算用这个UID做算术吗?@TimBiegeleisenJava
!=javascript