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

Může někdo vysvětlit cizí klíče MySQL

Toto není automatické, musíte přidat omezení cizího klíče na customer_id sloupec order stůl. To lze provést při vytvoření tabulky nebo pomocí příkazu ALTER. Podrobnosti naleznete v dokumentaci. Jak poukázali jiní, všimněte si, že obě tabulky musí to být tabulky InnoDB (omezení cizích klíčů nepodporuje úložiště MyISAM, které je bude ignorovat).

S nebo bez omezení FK by dotaz vypadal něco jako:

SELECT * 
FROM CUSTOMER C, ORDER O
WHERE C.ID = O.CUSTOMER_ID
AND O.ID = ...

Omezení FK by „jen“ zaručilo, že sloupec CUSTOMER_ID tabulky ORDER nemůže obsahovat hodnoty, které v tabulce CUSTOMER neexistují (s výjimkou potenciálně NULL), a tím vynucuje referenční integritu.



  1. SQL Server replikace databáze

  2. Jak odečíst 2 data v oracle, abyste získali výsledek v hodině a minutě

  3. Jak změnit heslo kořenového účtu MySQL na CentOS7?

  4. Použijte LIMIT k stránkování výsledků v dotazu MySQL