sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit cizí klíč pro 2 tabulky?

Bohužel nemůžete vytvořit takové omezení, protože cizí klíč je vždy založen na jedné nadřazené tabulce.

Co můžete udělat, je vytvořit spouštěč, který otestuje vaše vstupní data podle jejich typu a vrátí zpět nevhodné změny:

Něco jako toto:

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. (poskytovatel:Named Pipes Provider, chyba:40 – Nelze otevřít připojení k serveru SQL Server)

  2. SET NULL:Zadejte řetězec, který se má vrátit, kdykoli se v SQLcl / SQL*Plus objeví hodnota Null

  3. vypočítat hodiny na základě pracovní doby v Oracle SQL

  4. while($row =mysql_fetch_assoc($result)) - Jak foreach $row?