【发布时间】:2021-08-25 10:49:32
【问题描述】:
我有一个使用 Sequelize (node/express) 作为 ORM 的 Postgres 数据库。我有一个名为 students 的表,其中有列:id 和 name。
在这个学生表中,我有几个注册的学生,但是一个细节:最后注册的ID是34550,第一个是30000,他们是从以前的数据库中导入的,我需要从34550开始继续计数,或者那个是,从最后注册的学生开始。但是,当我通过 API 注册学生时,生成的 ID 低于 30000。我知道在 mysql 中 ID 字段为 AUTO INCREMENT 可以解决它,但是,据我了解,postgres 以不同的方式工作。
我该如何解决这个问题?
用于创建表的迁移如下:
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('students', {
id: {
type: Sequelize.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true,
},
name: {
type: Sequelize.STRING,
allowNull: false,
},
});
},
down: (queryInterface) => {
return queryInterface.dropTable('students');
},
};
表格打印:
【问题讨论】:
-
对您的序列使用函数 SETVAL():postgresql.org/docs/current/functions-sequence.html