我正在尝试获取未通过此SQL查询使用的最小ID(按世界(:
"SELECT MAX(`objects`.`id`) as nextID FROM `objects` WHERE `objects`.`world`='1'"
节点JS:
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit: 10,
host: '********',
user: '*********',
password: '*******',
database: databaseName
});
function getNextObjectID(worldID, cb) {
var q = "SELECT MAX(`objects`.`id`) as nextID FROM `objects` WHERE `objects`.`world`='"+worldID+"'";
console.log(q);
pool.query(q, function(err, results, fields) {
console.log(err);
console.log(results);
console.log(fields);
});
}
以前,我有一个更深入的方法,包括以前使用的 id,但它也遇到了这个问题,所以我恢复到这个更简单的方法。
我通过节点和phpmyadmin运行它。当节点这样做时,它会自动插入世界 id(是的,我打印出实际查询并在执行时得到它是相同的(。当phpmyadmin执行时,它返回14。当节点执行其很少的 14 并且大部分时间为空时。我不知道为什么它会改变。所有其他查询的行为正常。
有一个异步删除被其他人调用,它在插入大量行之前读取下一个 id。