私はモデルの関連付けにSailsとWaterlineを使用しています。私はPageChildオブジェクトを更新しようとしているときにこのエラーを修正するために何をすべきかわかりません。子行を追加または更新できません:外部キー制約は失敗します。CONSTRAINT `PageChild_Page_Id_fk`外部キー(` PageId`)参照 `Page`(` Id`)
module.exports = {
tableName: 'Page',
adapter: 'mysql',
autoCreatedAt: false,
autoUpdatedAt: false,
attributes: {
Id: {type: 'integer', autoIncrement: true, primaryKey: true},
pageChildren: {
collection: 'PageChild',
via: 'Page'
}
},
};
module.exports = {
tableName: 'PageChild',
adapter: 'mysql',
attributes: {
Id: {type: 'integer', autoIncrement: true, primaryKey: true},
Page: {
model: 'Page',
columnName: 'PageId'
}
}
};
モデル協会がPageオブジェクトからpageChildrenを移入するためのまたはpageChildrenのいずれかからページオブジェクトを返すために完璧にうまく動作します。しかし、PageChildオブジェクトを作成または更新しようとすると、この外部キーの問題が発生します。
mysqlデータベースでは、ページテーブルには「Id」属性があり、PageChildテーブルには「Id」属性と「PageId」属性があります。
foreign key constraint fails CONSTRAINT `PageChild_Page_Id_fk` FOREIGN KEY (`PageId`) REFERENCES `Page` (`Id`)
ルールがある、あなただけの追加や、すでに親テーブルに存在する子テーブル内の値を更新することができます