L'unico modo per risolvere questo problema (almeno con le capacità limitate di MySQL) per consentire NULL
valori in entrambe le colonne FK. La creazione di un nuovo utente con un'identità primaria sarebbe quindi simile a questa:
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;
L'unico inconveniente di questa soluzione è che non è possibile forzare che un utente abbia un'identità primaria (perché la colonna deve essere nullable).