基于值排序唯一约束组合



我尝试使用sequelize插入数据。我有以下模型

const MyModel = sequelize.define(
'User', {
userId: {primaryKey: true, autoIncrement: true, type: Sequelize.INTEGER},
userName: {type: Sequelize.TEXT, unique: true},
userKey: {type: Sequelize.TEXT, unique: true},
enabled: {
type: Sequelize.BOOLEAN,
allowNull: false,
set(val) {
this.setDataValue('enabled', true);
}
},
})

我在用户表

中有以下数据| 1 | Manu | Manu | false |

当我试图使用上述模型插入数据时,我得到了重复的错误消息(请注意,当前条目具有"启用"&;字段为False)。但是只有当"enable"字段为true,否则,它应该允许我添加一个新记录。

我想要实现的是使用enabled + userkey和enabled + username的组合检查

可以在Schema

中定义unique的组合
const myModel = sequelize.define("my_table", {
id: {
type: Sequelize.UUID,
primaryKey: true,
defaultValue: Sequelize.UUIDV4,
unique: true,
},
userEmail: {
type: Sequelize.STRING,
allowNull: false
},
role: {
type: Sequelize.STRING,
allowNull: false
}
},{
indexes: [
{
unique: true,
fields: ['role', 'userEmail']
}
]
});

最新更新