C# ';无法添加或更新子行:外键约束失败';错误
所以在我的institutions表中,我已经预先填充了一个institution Id,并将其存储在我的C#code中 我正试图将一个角色添加到角色表中,在该表中我同样需要插入我已经从institutions表中捕获并存储在C#中的机构Id。机构Id是角色表中的外键 问题是,我这样做:C# ';无法添加或更新子行:外键约束失败';错误,c#,mysql,C#,Mysql,所以在我的institutions表中,我已经预先填充了一个institution Id,并将其存储在我的C#code中 我正试图将一个角色添加到角色表中,在该表中我同样需要插入我已经从institutions表中捕获并存储在C#中的机构Id。机构Id是角色表中的外键 问题是,我这样做: MySqlCommand mysqlcom = new MySqlCommand("INSERT INTO roles(RoleId, RoleType, InstitutionId) VALUES
MySqlCommand mysqlcom = new MySqlCommand("INSERT INTO roles(RoleId, RoleType, InstitutionId) VALUES('(uuid_to_bin(uuid()))', " +
"'@RoleType', '@InstitutionId')",
mysqlcon);
mysqlcom.Parameters.Add("@RoleType", MySqlDbType.VarChar).Value = roleType;
mysqlcom.Parameters.Add("@InstitutionId", MySqlDbType.Binary).Value = InstitutionModel.InstitutionId;
mysqlcon.Open();
int isSuccess = mysqlcom.ExecuteNonQuery();
得到这个:
MySql.Data.MySqlClient.MySqlException: 'Cannot add or update a child row: a foreign key constraint fails (`TestDB`.`roles`, CONSTRAINT `InstitutionId_Roles_FK` FOREIGN KEY (`InstitutionId`) REFERENCES `institutions` (`InstitutionId`) ON DELETE CASCADE ON UPDATE CASCADE)'
InstitutionId
是一个二进制16(UUID),我将它适当地存储为byte[]
,它肯定是正确的id,所以我不明白MySQL为什么不让我这么做。有什么办法可以解决这个问题吗?找到了问题。。。。我在做'@InstitutionId'
,而不仅仅是@InstitutionId
。。。。FML