即使删除了表中的所有行,也会继续。它继续从上一个插入的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....')
});
});
2条答案
按热度按时间a0zr77ik1#
这是mysql的正常行为,而且通常是故意的,所以ID永远不会被重复使用,甚至对于已删除的记录也是如此。
如果确实需要重置自动递增计数器,可以:
一次清空整张table
TRUNCATE TABLE users
删除并重新创建表DROP TABLE users
/CREATE TABLE users ...
ALTER TABLE users AUTO_INCREMENT = 1
;另请参见https://www.mysqltutorial.org/mysql-reset-auto-increment/
vecaoik12#
您已经将auto\u increment\u increment系统变量从默认值
1
至10
. 它的作用域是全局会话,因此您可以为当前会话设置它,也可以为整个服务器更改它(在mysql/8.0.18之前,第一个选项被限制)。如果您根本不需要它,我建议您只需在设置文件中找到该指令并对其进行注解。