sql >> Databáze >  >> RDS >> Mysql

kruhová závislost mysql v omezeních cizího klíče

Jediný způsob, jak to vyřešit (alespoň s omezenými možnostmi MySQL), je umožnit NULL hodnoty v obou sloupcích FK. Vytvoření nového uživatele s primární identitou by pak vypadalo asi takto:

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;

Jedinou nevýhodou tohoto řešení je, že nemůžete vynutit, aby měl uživatel primární identitu (protože sloupec musí mít hodnotu null).




  1. Vytvořte objekt Date v PHP pro data před rokem 1970 v určitém formátu

  2. Připojení MySQL z JSP

  3. Přístup odepřen uživateli 'root'@'localhost'

  4. 10 zkratek, které šetří čas v aplikaci Microsoft Access