sql >> データベース >  >> RDS >> Mysql

2つのテーブルの外部キーを作成するにはどうすればよいですか?

    残念ながら、foreighnキーは常に1つの親テーブルに基づいているため、このような制約を作成することはできません。

    できることは、入力データのタイプに応じて入力データをテストするトリガーを作成し、不適切な変更をロールバックすることです。

    このようなもの:

    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. MySQL:ロック待機タイムアウトを超えました

    2. SQL-JOINを含むWHERE句

    3. 長いPHPスクリプトを実行しているときにメモリをクリアするにはどうすればよいですか? unset()を試しました

    4. BLOBをOracleデータベース内の他のBLOBと比較します