Sequelizejs:错误:重复键值违反唯一约束“message_pkey" [英] Sequelizejs: error: duplicate key value violates unique constraint "message_pkey"

查看:15
本文介绍了Sequelizejs:错误:重复键值违反唯一约束“message_pkey"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 PostrgresDB,我使用 sequelize 与我的 Nodejs 应用程序连接,我正在尝试创建和保存模型,但它抛出 错误:重复键值违反唯一约束message_pkey"

I have a PostrgresDB i am connected to with my Nodejs app using sequelize, i am trying to create and save a model, but it is throwing error: duplicate key value violates unique constraint "message_pkey"

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

The problem is that there are entities already in the database, and it is trying to start saving incrementally from ID 1 which is already in the database, how can i make it save starting from the last ID saved in the database ? this is my Model

 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;

推荐答案

首先在 PostrgresDB 中运行:

First run this in your PostrgresDB :

SELECT setval('TABLENAME_id_seq', (SELECT MAX(id) FROM "TABLENAME"));
// Change TABLENAME with your table

然后尝试插入数据.

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

That's very common issue of sequence from PostrgresDB , For more detail READ

这篇关于Sequelizejs:错误:重复键值违反唯一约束“message_pkey"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆