sequelize-foreignkey允许空值

allow null value for sequelize foreignkey?

本文关键字:空值 许空值 sequelize-foreignkey      更新时间:2023-09-26

如何允许外键为null?我有一个throughbelongsToMany关联:

Shelf
    belongsToMany(Book, { through: Library, as: "Books"});
Book
    belongsToMany(Shelf, { through: Library, as: "Shelves"});
Library
    section: DataTypes.STRING,
    // ... other fields

我想在Library:中的bookId上记录一个null

Library.create({
    section: "blah",
    bookId: null,
    shelfId: 3
});

由于Sequelize会自动在联接表Library中创建bookIdshelfId,我如何指定我希望在Library中的bookId外键上允许null

我既不是node.js也不是sequelize.js的专家,但在谷歌上搜索一下,我就得到了官方文档。您可能需要注意文档中的这部分代码:

Library.hasMany(Picture, {
  foreignKey: {
    name: 'uid',
    allowNull: false
  }
});

似乎您需要在Library中指定{foreignKey: {name: 'bookId', allowNull: true} }

默认情况下,Sequelize关联被认为是可选的。如果您想使外键成为必需的,可以将allowNull设置为false

Foo.hasOne(Bar, {
  foreignKey: {
    allowNull: false
  }
});

请参阅文档