INSERT INTO authorization_records (auth_code,software_type,applicant_id,approver_id,auth_status) VALUES ('3','软件授权',5,0,'待处理')
问题分析:
- 在
INSERT语句中,approver_id被插入为0,但数据库中的外键约束要求approver_id必须是users表中的有效id(即id必须大于零,且是users表中实际存在的记录)。这就是导致外键约束失败的原因。
解决方案
// 如果 approver_id 为 0 或无效,可以将其设置为 NULL
approverID := in.ApproverID
if approverID == 0 {
approverID = nil // 设置为 NULL
}
ApproverID: approverID,
**使用指针类型**:如果你希望 `ApproverID` 可以为 `nil`(即没有指定审批人),
你可以将 `ApproverID` 的类型改为 `*uint`,这样就可以将其设置为 `nil`。