Nest Postgresql Sequelize 与 ForeignKey 的一对一错误
Nest Postgresql Sequelize one-to-one Error with ForeignKey
我的Table
@Table({ tableName: "siCheckingInfo", createdAt: false, updatedAt: false })
export class SiChecking extends Model<SiChecking, CheckingAttrs> {
@Column({
type: DataType.INTEGER,
unique: true,
autoIncrement: true,
primaryKey: true,
})
pageId: number;
@Column({ type: DataType.STRING, allowNull: false })
manufactureNum: string;
*...some columns...*
@Column({ type: DataType.STRING, allowNull: true })
checkingType: string;
@ForeignKey(() => CheckingDocs)
@Column({ type: DataType.INTEGER })
checkingDocsId: number;
@BelongsTo(() => CheckingDocs)
doc: CheckingDocs;
@ForeignKey(() => SiType)
@Column({ type: DataType.INTEGER })
siTypeId: number;
@BelongsTo(() => SiType)
siType: SiType;
**@ForeignKey(() => CheckingResults)
@Column({ type: DataType.INTEGER })
resultId: number;
@HasOne(() => CheckingResults)
results: CheckingResults;**
}
与table有一对一联系
@Table({ tableName: "checkingResults", createdAt: false, updatedAt: false })
export class CheckingResults extends Model<
CheckingResults,
CheckingResultsAttrs
> {
@ForeignKey(() => SiChecking)
@Column({
type: DataType.INTEGER,
unique: true,
autoIncrement: true,
primaryKey: true,
})
resultId: number;
@Column({ type: DataType.BOOLEAN, unique: false, allowNull: false })
isSuccessful: boolean;
*...some columns...*
@Column({ type: DataType.BOOLEAN, unique: false, allowNull: true })
siIsSigned: boolean;
@BelongsTo(() => SiChecking)
SiChecking: SiChecking;
}
但是当我尝试在第二个 table 中添加一些数据时<我得到了一个错误 - table 上的嵌套错误插入或更新“checkingResults”违反了外键约束“checkingResults_resultId_fkey”
发生什么事了?我尝试了任何事情...我怎么记得 - 以前在这个地方没有得到这个错误,我没有触及这里的任何东西,但现在错误在这里...
我只需要用 @HasOne
和 @BelongsTo
更改表中的位置
我的Table
@Table({ tableName: "siCheckingInfo", createdAt: false, updatedAt: false })
export class SiChecking extends Model<SiChecking, CheckingAttrs> {
@Column({
type: DataType.INTEGER,
unique: true,
autoIncrement: true,
primaryKey: true,
})
pageId: number;
@Column({ type: DataType.STRING, allowNull: false })
manufactureNum: string;
*...some columns...*
@Column({ type: DataType.STRING, allowNull: true })
checkingType: string;
@ForeignKey(() => CheckingDocs)
@Column({ type: DataType.INTEGER })
checkingDocsId: number;
@BelongsTo(() => CheckingDocs)
doc: CheckingDocs;
@ForeignKey(() => SiType)
@Column({ type: DataType.INTEGER })
siTypeId: number;
@BelongsTo(() => SiType)
siType: SiType;
**@ForeignKey(() => CheckingResults)
@Column({ type: DataType.INTEGER })
resultId: number;
@HasOne(() => CheckingResults)
results: CheckingResults;**
}
与table有一对一联系
@Table({ tableName: "checkingResults", createdAt: false, updatedAt: false })
export class CheckingResults extends Model<
CheckingResults,
CheckingResultsAttrs
> {
@ForeignKey(() => SiChecking)
@Column({
type: DataType.INTEGER,
unique: true,
autoIncrement: true,
primaryKey: true,
})
resultId: number;
@Column({ type: DataType.BOOLEAN, unique: false, allowNull: false })
isSuccessful: boolean;
*...some columns...*
@Column({ type: DataType.BOOLEAN, unique: false, allowNull: true })
siIsSigned: boolean;
@BelongsTo(() => SiChecking)
SiChecking: SiChecking;
}
但是当我尝试在第二个 table 中添加一些数据时<我得到了一个错误 - table 上的嵌套错误插入或更新“checkingResults”违反了外键约束“checkingResults_resultId_fkey”
发生什么事了?我尝试了任何事情...我怎么记得 - 以前在这个地方没有得到这个错误,我没有触及这里的任何东西,但现在错误在这里...
我只需要用 @HasOne
和 @BelongsTo