【发布时间】:2020-05-22 10:34:56
【问题描述】:
即使在删除表中的所有行后继续。它从最后插入的 id 继续添加。 我用它来创建我的表
app.get('/createuserstable', (req, res) => {
let sql = 'CREATE TABLE Users(id int AUTO_INCREMENT, name VARCHAR(255), username VARCHAR(255), email VARCHAR(255), PRIMARY KEY (id))';
db.query(sql, (err, result) => {
if (err) throw err;
console.log(result);
res.send('Users table created....');
});
});
使用注册路线添加用户,并以 10 步递增
app.post('/signup', (req, res) => {
let user = { name: req.body.name, username: req.body.username, email: req.body.email };
db.query('INSERT INTO users SET?', user, (error, result) => {
if (error) throw error;
res.status(201).send(`User added with ID: ${result.insertId}`);
});
});
这是使用 10 行 json 数据的代码
app.get('/populate', (req, res) => {
request({
url: "http://jsonplaceholder.typicode.com/users",
json: true
}, (err, resp, body) => {
//res.send(typeof body);
for (var i = 0; i < body.length; i++) {
let post = { id: body[i].id, name: body[i].name, username: body[i].username, email: body[i].email };
let sql = 'INSERT INTO users SET?';
let query = db.query(sql, post, (err, result) => {
if (err) throw err;
console.log(result);
});
};
res.send('users data added....')
});
});
【问题讨论】:
-
我假设您确实检查了 pypMyAdmin 中的实际表或其他内容?您能否确认这些 ID 实际上未使用,即该表在 41 和 51 之间没有任何行?
-
除非您无意中拨弄了auto_increment_increment,否则这可能是预期的行为。
-
回到@ÁlvaroGonzález 的想法,
SHOW VARIABLES LIKE 'auto_inc%';的结果是什么? -
AFAIK 这可以为每个会话设置,因此您可以根据
SET @@auto_increment_increment=1;为新连接设置它。但是,如果您正在与其他人一起处理更大的代码库,我会首先 grep 如果它出于某种原因将其设置为 10,并且如果您不是数据库管理员,是否会先询问他/她,因为可能有原因这个步长。 -
感谢你们@SebastianB 的帮助。和克里斯格。有人告诉我 cleardb(我正在使用的数据库)按照你所说的 sebastian 的方式配置它。
标签: javascript mysql sql node.js