Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat kunci asing untuk 2 tabel?

Sayangnya, Anda tidak dapat membuat batasan seperti itu, karena kunci asing selalu didasarkan pada satu tabel induk.

Yang dapat Anda lakukan adalah membuat pemicu yang akan menguji data input Anda sesuai dengan jenisnya, dan mengembalikan perubahan yang tidak sesuai:

Sesuatu seperti ini:

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. Cara menjalankan kueri MYSQL sederhana menggunakan Rails

  2. Kenapa Pencarian pintar begitu cepat di facebook

  3. Dapatkan nama kolom yang memiliki nilai maksimal dalam satu baris sql

  4. Mengapa kueri dengan IN (subquery) membutuhkan waktu lebih lama daripada kueri dengan IN (daftar diskrit)

  5. Operator `~` (tilde) dalam Pencarian Teks Lengkap Boolean di MySQL tidak berperilaku seperti yang dinyatakan di situs web pengembang MySQL