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

Как да създадете външен ключ за 2 таблици?

За съжаление не можете да създадете такова ограничение, тъй като външният ключ винаги се базира на една родителска таблица.

Това, което можете да направите, е да създадете тригер, който ще тества вашите входни данни според техния тип и ще отмени неподходящи промени:

Нещо подобно:

CREATE TRIGGER insert_stock_child
BEFORE INSERT
ON stock
FOR EACH ROW
BEGIN
  IF new.type = 'BOOK_TYPE' AND (SELECT COUNT(*) FROM book
    WHERE book.bookID = new.itemID)= 0
  THEN
    INSERT error_msg VALUES ('No such book!');
  END IF;
END;

-- same logic for the cd table



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да зададете двоични данни с помощта на setBlob() в C++ конектор

  2. Грешка в MySQL:mysql_fetch_assoc() очаква параметър 1 да бъде ресурс

  3. търсене на данни от html вход в mysql

  4. Многостепенни отговори на коментари:Дисплей и съхранение

  5. Как мога да абстрахирам mysqli подготвени изрази в PHP?