Sequelizejs:错误:重复的键值违反了唯一约束“message_pkey”

Tha*_*nus 4 sequelize.js

我有一个PostrgresDB,我使用sequelize与我的Nodejs应用程序连接,我试图创建并保存一个模型,但它抛出error: duplicate key value violates unique constraint "message_pkey"

问题是数据库中已经有实体,并且它试图从数据库中已经存在的 ID 1 开始增量保存,我怎样才能让它从数据库中保存的最后一个 ID 开始保存?这是我的模型

 var Sequelize = require('sequelize');

var db = require('../database/postgres');


var Message =db.define('message', {

    id: {
        type: Sequelize.INTEGER,
        field: 'id',
        autoIncrement: true,
        allowNull: true,
        primaryKey: true
    },

    time: {
        type: Sequelize.DATE,
        field: 'time'
    },

    isread: {
        type: Sequelize.BOOLEAN,
        field: 'isread'
    },

    message: {
        type: Sequelize.STRING,
        field: 'message'
    },

    messagestatus: {
        type: Sequelize.ENUM,
        values: ['UNDELIVERED', 'DELIVERED', 'UNREAD', 'READ'],
        field: 'messagestatus'
    },

    receiver: {
        type: Sequelize.INTEGER,
        field: 'receiver'
    },

    sender: {
        type: Sequelize.INTEGER,

        field: 'sender'
    },

}, {
    tableName: 'message',

    timestamps: false
});


module.exports = Message;
Run Code Online (Sandbox Code Playgroud)

Viv*_*shi 5

首先在 PostrgresDB 中运行:

SELECT setval('TABLENAME_id_seq', (SELECT MAX(id) FROM "TABLENAME"));
// Change TABLENAME with your table
Run Code Online (Sandbox Code Playgroud)

然后尝试插入数据。

这是 PostrgresDB 中非常常见的序列问题,有关更多详细信息,请阅读