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

Dlaczego muszę używać klucza obcego, skoro mogę użyć WHERE?

Nie jest to bezwzględnie potrzebne do zapytania, to prawda. Istnieje z kilku powodów:

  1. Jako ograniczenie na stole, aby zatrzymać wstawianie czegoś, co nie wskazuje na nic;
  2. Jako wskazówka dla optymalizatora; i
  3. Ze względów historycznych było to bardziej potrzebne.

(1) jest prawdopodobnie najważniejszym z trzech. Nazywa się to integralności referencyjnej . Oznacza to, że jeśli w kluczu obcym istnieje wartość, w tabeli nadrzędnej będzie odpowiedni rekord z tą wartością jako kluczem podstawowym.

Biorąc to pod uwagę, nie wszystkie bazy danych obsługują integralność referencyjną (np. tabele MySQL/MyISAM), a te, które niekoniecznie ją wymuszają (ze względu na wydajność).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL | Nie możesz określić tabeli docelowej „a” do aktualizacji w klauzuli FROM

  2. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL - Część 2

  3. Jak na wyłączność zablokować bazę mysql?

  4. Wiązania C++ dla MySQL

  5. Jak odzyskać bazę danych Mysql z plików kopii zapasowej?