Mat*_*eno 4 validation sequelize.js
我正在使用sequelize,我的模型“用户”有一个具有唯一验证的字段“电子邮件”。\n但是当我尝试使用软删除的旧寄存器的相同电子邮件创建新寄存器时,验证会触发而不是请允许我继续。\n这是一个错误吗?唯一的验证需要一个特定的参数,或者它应该以这种方式工作?
\n\n型号的电子邮件:
\n\nemail: { \n type: Sequelize.STRING(191),\n allowNull: false,\n unique: {\n msg: 'Email j\xc3\xa1 cadastrado.'\n }, \n validate: {\n isEmail: {\n msg: 'Formato de email inv\xc3\xa1lido.'\n },\n notEmpty:{\n msg: 'Email deve ser informado.'\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我使用的sequelize版本是:4.17.2
\n这不是一个错误 - 它在数据库表上强制执行唯一索引。“软”删除只是将记录标记为已删除(isDeleted=true例如),但实际上并未从数据库表中删除它。假设数据库确实允许您在唯一列中创建重复值,那么如果您取消删除具有冲突名称的软删除项目,就会导致问题。
您似乎想要的功能是可能的,但您需要在应用程序中以编程方式而不是在数据库级别强制执行逻辑。