Mysql 未处理的拒绝SequelizeDatabaseError:无法添加外键约束
我有两个表:管理员用户和管理员帐户Mysql 未处理的拒绝SequelizeDatabaseError:无法添加外键约束,mysql,sequelize.js,Mysql,Sequelize.js,我有两个表:管理员用户和管理员帐户 const Sequelize = require('sequelize'); module.exports = (sequelize, DataTypes) => { var admin_user = sequelize.define('admin_user', { id: { autoIncrement: true, type: Sequelize.INTEGER, primaryKey: true
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
var admin_user = sequelize.define('admin_user', {
id: {
autoIncrement: true,
type: Sequelize.INTEGER,
primaryKey: true
},
name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true,
}
},
user_name:{
type: Sequelize.STRING,
allowNull: false,
unique: true
}
});
admin_user.associate = (models) =>{
admin_user.hasOne(models.admin_account, { foreignKey: 'admin_user_id' });
};
return admin_user;
};
'use strict';
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
var admin_account = sequelize.define('admin_account', {
admin_user_id:{
type: Sequelize.INTEGER,
primaryKey: true
},
password: {
type: Sequelize.STRING
}
});
return admin_account;
};
创建表时出现此错误:
执行(默认):如果不存在,则创建表admin\u users
(id
INTEGER auto\u increment,name
VARCHAR(255),email
VARCHAR(255)NOT NULL UNIQUE,user\u name
VARCHAR(255)NOT NULL UNIQUE,createdAt
DATETIME NOT NULL,updatedAt
DATETIME NOT NULL,主键(id
)引擎=InnoDB;
正在执行(默认):显示来自admin\u用户的索引FROMmilkman\u prod1
执行(默认):如果不存在,则创建表admin\u帐户(admin\u用户id
整数,password
VARCHAR(255),createdAt
DATETIME非空,updatedAt
DATETIME非空,主键(admin\u用户id
),外键(admin\u用户id
)在DELETE上引用admin\u用户
(id
)在更新级联上设置NULL)引擎=InnoDB;
未处理的拒绝SequelizeDatabaseError:无法添加外键约束请尝试使用以下代码:
'use strict';
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
var admin_account = sequelize.define('admin_user', {
admin_user_id:{
type: Sequelize.INTEGER,
primaryKey: true
},
password: {
type: Sequelize.STRING
}
});
admin_account.associate = (models) =>{
admin_account.belongsTo(models.admin_user);
};
return admin_account;
};
感谢Riajul。它将消除错误,但不会在表中输入任何内容。我提出了另一个解决方案:admin_user.associate=(models)=>{admin_user.hasOne(models.admin_帐户,{foreignKey:{name:'admin_user_id',allowNull:false},onDelete:'restrict',onUpdate:'restrict'});