Mysql
 sql >> Database >  >> RDS >> Mysql

dipendenza circolare da mysql nei vincoli di chiave esterna

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).