Mysql
 sql >> база данни >  >> RDS >> Mysql

Някой може ли да обясни външните ключове на MySQL

Това не е автоматично, трябва да добавите ограничение за външен ключ на customer_id колона на order маса. Това може да стане по време на създаване на таблицата или с помощта на оператор ALTER. Проверете документацията за подробности. Както посочиха други, имайте предвид, чеи двете таблици трябва да са InnoDB таблици (ограниченията на външния ключ не се поддържат от механизма за съхранение на MyISAM, който ще ги игнорира).

Със или без FK ограничение, заявката ще бъде нещо като:

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

FK ограничение „просто“ би гарантирало, че колоната CUSTOMER_ID на таблицата ORDER не може да съдържа стойности, които не съществуват в таблицата CUSTOMER (освен потенциално NULL) и по този начин налага референтната цялост.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. съхраняване на числа като varchar

  2. първични индекси срещу вторични индекси:разлики в производителността

  3. Как да подредя резултатите от заявката на MYSQL ORDER BY?

  4. mySQL Група по име на член

  5. MySQL - Как да вмъкнете в таблица, която има връзка много към много