Jedynym sposobem rozwiązania tego problemu (przynajmniej przy ograniczonych możliwościach MySQL) jest umożliwienie NULL
wartości w obu kolumnach FK. Tworzenie nowego użytkownika z podstawową tożsamością wyglądałoby wtedy mniej więcej tak:
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;
Jedyną wadą tego rozwiązania jest to, że nie można wymusić, aby użytkownik miał podstawową tożsamość (ponieważ kolumna musi mieć wartość null).