Postgresql 在sequelize中包含具有不同类型的外键
我有两张桌子,游戏和测验 测验有游戏表的外键(Postgresql 在sequelize中包含具有不同类型的外键,postgresql,sequelize.js,Postgresql,Sequelize.js,我有两张桌子,游戏和测验 测验有游戏表的外键(gameId),数据类型字符不同 所以当我尝试加入模型游戏时 Quiz.findAndCountAll({ include: [{ model: Games }], }); 它给出错误没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 我定义了这样的关联: Quiz.belongsTo(models.Games, { foreignKey: "gameId" }); Games.hasMany(models
gameId
),数据类型字符不同
所以当我尝试加入模型游戏时
Quiz.findAndCountAll({
include: [{ model: Games }],
});
它给出错误没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。
我定义了这样的关联:
Quiz.belongsTo(models.Games, { foreignKey: "gameId" });
Games.hasMany(models.Quiz, {
foreignKey: {name: "gameId"},
as: "Quiz",
onDelete: "CASCADE"
});
我遇到了类似的问题:
但这个问题没有答案
当我在PG Admin上运行查询时
与其搜索强制转换的可能性,不如修复模式,使类型相同……但当前有太多的现有行,如果我更新类型会受到影响吗?取决于类型,但当
=
不起作用时,它们可能不太容易更改。但是,多行的存在并不能使不同类型的使用变得更好。在您的情况下,您如何成功地添加外键约束?我想没有?这是下一件坏事……如果您不修复数据类型,那么下次需要修复时将有多少行。你可以保证会有。然后@stickybit指出,您将能够拥有引用完整性(FKs)。正确的解决方案从来不是错误的选择,但每次应用创可贴后总是很难。