我得到了这个错误:
Unhandled rejection SequelizeUniqueConstraintError: Validation error我该如何解决这个问题呢?
这是我的模型/user.js
"use strict";
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define("User", {
id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true},
name: DataTypes.STRING,
environment_hash: DataTypes.STRING
}, {
tableName: 'users',
underscored: false,
timestamps: false
}
);
return User;
};这是我的routes.js:
app.post('/signup', function(request, response){
console.log(request.body.email);
console.log(request.body.password);
User
.find({ where: { name: request.body.email } })
.then(function(err, user) {
if (!user) {
console.log('No user has been found.');
User.create({ name: request.body.email }).then(function(user) {
// you can now access the newly created task via the variable task
console.log('success');
});
}
});
});发布于 2018-06-04 06:23:09
我的QA数据库有这个问题。有时新记录会保存到数据库中,有时会失败。在我的dev工作站上执行相同的过程时,每次都会成功。
当我捕捉到错误(per @doublesharp的好建议)并将完整的结果打印到控制台时,它确认违反了一个唯一的约束-具体地说,就是主键id列,该列被设置为默认的自动递增的值。
我用记录作为数据库的种子,尽管这些记录的id也被设置为自动递增,但200多条记录的id分散在1和2000之间,但是数据库的自动递增序列被设置为从1开始。通常序列中的下一个id是未使用的,但偶尔它已经被占用,数据库将返回此错误。
我使用answer here将序列重置为在最后一条种子记录之后开始,现在它每次都有效。
发布于 2019-07-12 03:40:11
基于@Ricardo Machado的回答,如果您将unique:true添加到模型中,并且现有表中已有在此新约束下不允许的值,您将得到此错误。要修复此问题,您可以手动删除行或删除表,然后Sequelize再次构建它。
发布于 2021-02-05 04:12:56
如果您在Sequelize:中偶然发现了这个Validation error,请检查填充(创建)表的查询是否只执行了一次。
我的Nest.js应用程序没有正确设置,并且执行了两次相同的命令,从而违反了唯一约束。
https://stackoverflow.com/questions/40709409
复制相似问题