Mysql
 sql >> Base de données >  >> RDS >> Mysql

dépendance circulaire mysql dans les contraintes de clé étrangère

La seule façon de résoudre ce problème (au moins avec les capacités limitées de MySQL) est d'autoriser NULL valeurs dans les deux colonnes FK. La création d'un nouvel utilisateur avec une identité principale ressemblerait alors à ceci :

insert into users (id, primary_identity)
values (1, null);

insert into identities (id, name, belongs_to)
values (1, 'foobar', 1);

update users 
  set primary_identity = 1
where id = 1;

commit;

Le seul inconvénient de cette solution est que vous ne pouvez pas forcer un utilisateur à avoir une identité principale (car la colonne doit être nullable).