sql >> Databasteknik >  >> RDS >> Mysql

Hur skapar man främmande nyckel för 2 bord?

Du kan tyvärr inte skapa en sådan begränsning, eftersom den främmande nyckeln alltid är baserad på en överordnad tabell.

Vad du kan göra är att skapa triggern som testar din indata enligt dess typ och återställer olämpliga ändringar:

Något så här:

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. Migrera en Oracle-databas från AWS EC2 till AWS RDS, del 3

  2. Boolean Field i Oracle

  3. Hur kan jag välja den senaste inmatningen för varje medlem?

  4. Använda kryptering för att stärka PostgreSQL-databassäkerheten