sql >> Base de Datos >  >> RDS >> Mysql

dependencia circular mysql en restricciones de clave externa

La única forma de resolver esto (al menos con las capacidades limitadas de MySQL) para permitir NULL valores en ambas columnas FK. La creación de un nuevo usuario con una identidad principal se vería así:

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;

El único inconveniente de esta solución es que no puede forzar que un usuario tenga una identidad principal (porque la columna debe ser anulable).