Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

dependência circular do mysql em restrições de chave estrangeira


A única maneira de resolver isso (pelo menos com os recursos limitados do MySQL) é permitir NULL valores em ambas as colunas FK. A criação de um novo usuário com uma identidade primária ficaria assim:
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;

A única desvantagem dessa solução é que você não pode forçar que um usuário tenha uma identidade primária (porque a coluna precisa ser anulável).