De enige manier om dit op te lossen (tenminste met de beperkte mogelijkheden van MySQL) om NULL
toe te staan waarden in beide FK-kolommen. Het aanmaken van een nieuwe gebruiker met een primaire identiteit ziet er dan ongeveer zo uit:
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;
Het enige nadeel van deze oplossing is dat je niet kunt forceren dat een gebruiker een primaire identiteit heeft (omdat de kolom nullable moet zijn).