【问题标题】:Auto increment in postgres/sequelizepostgres/sequelize 中的自动增量
【发布时间】: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');
    },
  };

表格打印:

【问题讨论】:

标签: postgresql sequelize.js


【解决方案1】:

根据Frank 评论,我可以使用以下方法进行调整:

SELECT setval('public.students_id_seq', 34550, true);

【讨论】:

    猜你喜欢
    • 2019-05-20
    • 2022-01-09
    • 1970-01-01
    • 2013-03-22
    • 2016-06-05
    • 2017-03-09
    • 2011-07-17
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多