1

如果我尝试使用以下查询更改“askexpert”表的 usertypeid 属性的值:

UPDATE aura_users_logins SET user_types_id="some value" WHERE user_profiles_id="some value";

它抛出错误:

foreign key constraint fails (`aura`.`askexpert`, CONSTRAINT 
fk_askexpert_aura_users_logins` FOREIGN KEY (`user_id `aura_users_logins_user_types_id`) 
REFERENCES `aura_users_logins` (`user_id`, `user_types_id`).

但我可以使用以下查询更改用户 ID。

UPDATE aura_users_logins SET user_profiles_id="some value" WHERE uuser_profiles_id="some value";
4

3 回答 3

1

看看你的表结构会很好,但你的“askexpert”表似乎有一个外键到“aura_users_logins”列(user_iduser_types_id

如果您更新“user_types_id”列,“askexpert”上的行将没有有效的参考。

如果要更新值,您应该:

  • 禁用外键
  • 使用新值在“aura_users_logins”上创建一个新行,然后更新“askexpert”
于 2012-09-12T12:53:28.003 回答
1

但我可以使用以下查询更改用户 ID

UPDATE aura_users_logins SET user_profiles_id

不,你没有。您正在更新该user_profiles_id列。

如果你真的想,做

SET FOREIGN_KEY_CHECKS = 0

第一的。后来又设置回来1了。

于 2012-09-12T12:37:13.430 回答
0

因为“aura_users_logins”有一个外键“user_types_id”,它是指其他表的主键。因此,您必须确保另一个表包含您在查询中更新的主键作为主键。

UPDATE aura_users_logins SET user_types_id="some value" WHERE user_profiles_id="some value";

“某个值”必须在其他表中作为主键。

于 2012-09-12T12:49:13.767 回答