Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-Zirkelabhängigkeit in Fremdschlüsseleinschränkungen

Der einzige Weg, dies zu lösen (zumindest mit den begrenzten Möglichkeiten von MySQL), ist es, NULL zuzulassen Werte in beiden FK-Spalten. Das Erstellen eines neuen Benutzers mit einer primären Identität würde dann etwa so aussehen:

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;

Der einzige Nachteil dieser Lösung ist, dass Sie nicht erzwingen können, dass ein Benutzer eine primäre Identität hat (da die Spalte nullable sein muss).