Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy ktoś może wyjaśnić klucze obce MySQL?

Nie jest to automatyczne, musisz dodać ograniczenie klucza obcego na customer_id kolumna order stół. Można to zrobić w momencie tworzenia tabeli lub za pomocą instrukcji ALTER. Sprawdź w dokumentacji szczegóły. Jak zauważyli inni, zwróć uwagę, że obie tabele muszą być tabelami InnoDB (ograniczenia kluczy obcych nie są obsługiwane przez silnik pamięci MyISAM, który je zignoruje).

Z ograniczeniem FK lub bez, zapytanie będzie wyglądało następująco:

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

Ograniczenie FK „tylko” gwarantowałoby, że kolumna CUSTOMER_ID tabeli ORDER nie może zawierać wartości, które nie istnieją w tabeli CUSTOMER (z wyjątkiem potencjalnie NULL), a tym samym wymuszają integralność referencyjną.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA EclipseLink DatabaseException:„tabela foo.SEQUENCE nie istnieje”

  2. Błąd instalacji Ruby gem mysql2

  3. Jak otworzyć połączenie DB w Openshift?

  4. JDBC - Statement, PreparedStatement, CallableStatement i buforowanie

  5. MySQL w 2018 roku:co jest w wersji 8.0 i inne obserwacje