首页 > 解决方案 > 销毁后保持唯一约束

问题描述

我有一个带有唯一用户名的用户表。当我删除用户并重新创建相同的用户时,会出现错误:

Error: SQLITE_CONSTRAINT: UNIQUE constraint failed

似乎用户名的唯一计数在销毁后是持久的。有没有办法在删除后删除这个约束?

我在 sequelize 文档中看到存在钩子,但我不太明白如何应用它

更新

const Sequelize = require('sequelize');
// Connection
const { sequelize } = require('../config/sequelize');
const UserSource = require('./UserSource');

const User = sequelize.define('user', {
    user_id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true,
    },
    username: {
        type: Sequelize.STRING(100),
        unique: true,
    },
    name: {
        type: Sequelize.STRING(100)
    },
    place_id: {
        type: Sequelize.INTEGER,
        allowNull: false,
    },
}, {
    paranoid: true,
    timestamps: false,
});

User.hasMany(UserSource, { foreignKey: 'user_id', sourceKey: 'user_id'});
UserSource.belongsTo(User, { foreignKey: 'user_id', sourceKey: 'user_id'});

module.exports = User;

我也试过paranoid: false了还是不行

标签: node.jssequelize.js

解决方案


推荐阅读