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

Kan nogen forklare MySQL fremmednøgler

Dette er ikke automatisk, du skal tilføje en fremmednøglebegrænsningcustomer_id kolonne i order bord. Dette kan gøres på tidspunktet for oprettelse af tabellen eller ved hjælp af en ALTER-sætning. Se dokumentationen for detaljer. Som andre påpegede, bemærk at begge tabeller skal være InnoDB-tabeller (fremmednøglebegrænsninger understøttes ikke af MyISAM-lagringsmotoren, som vil ignorere dem).

Med eller uden en FK-begrænsning ville forespørgslen være noget i stil med:

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

En FK-begrænsning ville "bare" garantere, at CUSTOMER_ID-kolonnen i ORDER-tabellen ikke kan indeholde værdier, der ikke findes i CUSTOMER-tabellen (undtagen potentielt NULL) og dermed håndhæve referenceintegritet.



  1. Skjulte funktioner i SQL Server

  2. GROUP BY og COUNT i PostgreSQL

  3. Hurtigste måde at indlæse numeriske data i python/pandas/numpy array fra MySQL

  4. Disaster Recovery for Galera Cluster implementeret til en hybridsky