使用外键mysql更新属性的值

使用外键mysql更新属性的值,mysql,Mysql,如果我试图使用以下查询更改“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 (`

如果我试图使用以下查询更改“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`).
但是我可以使用下面的查询来更改Userid

UPDATE aura_users_logins SET user_profiles_id="some value" WHERE uuser_profiles_id="some value";
但是我可以使用下面的查询来更改Userid

不,你没有。您正在更新
user\u profiles\u id

如果你真的想,那就去做吧

SET FOREIGN_KEY_CHECKS = 0
首先。稍后再将其设置回
1

因为“aura\u users\u logins”有一个外键“user\u types\u id”,它指的是其他表的主键。因此,您必须确保另一个表包含作为主键的键,并在查询中进行更新

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

“some value”必须在其他表中作为主键。

查看表结构会很好,但“askexpert”表似乎有一个指向“aura\u users\u logins”列的外键(
user\u id
user\u types\u id

如果更新“user\u types\u id”列,“askexpert”上的行将没有有效的引用

如果要更新该值,应:

  • 禁用外键
  • 使用新值在“aura\u用户\u登录”上创建新行,然后更新“askexpert”
UPDATE aura_users_logins SET user_types_id="some value" WHERE user_profiles_id="some value";