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

Bagaimana cara menegakkan integritas referensial pada Warisan Tabel Tunggal?

Yang dapat Anda lakukan adalah menerapkan pemicu pada Users dan Team tabel yang dijalankan setiap kali baris dihapus dari:

Tabel pengguna:

DELIMITER $$
CREATE TRIGGER user_playlist_delete 
BEFORE DELETE ON User FOR EACH ROW
BEGIN
    DELETE a FROM Playlist a
    INNER JOIN UserPlaylist b ON a.id = b.id AND b.userId = OLD.id;
END$$
DELIMITER ;

Tabel tim:

DELIMITER $$
CREATE TRIGGER team_playlist_delete 
BEFORE DELETE ON Team FOR EACH ROW
BEGIN
    DELETE a FROM Playlist a
    INNER JOIN TeamPlaylist b ON a.id = b.id AND b.teamId = OLD.id;
END$$
DELIMITER ;

Apa yang akan dilakukan oleh pemicu ini adalah setiap kali catatan dihapus dari salah satu tabel ini, DELETE operasi akan secara otomatis dijalankan pada Playlists tabel menggunakan id yang akan dihapus (melalui gabungan dalam).

Saya telah menguji ini dan bekerja dengan baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jalankan localhost di mac OS X Yosemite

  2. MySQL - Bagaimana cara mengubah nilai default kolom?

  3. MySQL:Dapatkan pesan terbaru dari 2 tabel yang terkait satu sama lain

  4. Transaksi di MySQL - Tidak Dapat Mengembalikan

  5. PDOException di Connector.php baris 47:SQLSTATE[HY000] [1045] Akses ditolak untuk pengguna 'hassan'@'localhost' (menggunakan kata sandi:YA)