Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo khóa ngoại cho 2 bảng?

Rất tiếc, bạn không thể tạo ràng buộc như vậy vì khóa foreighn luôn dựa trên một bảng mẹ.

Những gì bạn có thể làm là tạo trình kích hoạt sẽ kiểm tra dữ liệu đầu vào của bạn theo loại của nó và khôi phục các thay đổi không phù hợp:

Một cái gì đó như thế này:

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. chuỗi kết nối trở lại bảng mục tiêu

  2. Ràng buộc khóa ngoại MySQL 5.5 không thành công khi khóa ngoại tồn tại

  3. Phản chiếu cơ sở dữ liệu Oracle sang mysql

  4. Tham chiếu khóa ngoại MySQL

  5. cách lưu trữ ngôn ngữ Ấn Độ như Telugu, Hindi trong cơ sở dữ liệu mysql