Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да наложим референтна цялост при наследяване на една таблица?

Това, което можете да направите, е да внедрите тригери във вашите Users и Team таблици, които се изпълняват всеки път, когато редовете бъдат изтрити от някоя от:

Таблица с потребители:

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 ;

Отборна таблица:

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 ;

Това, което тези тригери ще правят, е всеки път, когато запис се изтрие от една от тези таблици, DELETE операцията ще се изпълни автоматично в Playlists таблица с помощта на id който предстои да бъде изтрит (чрез вътрешно присъединяване).

Тествах това и работи чудесно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. задайте нова стойност за ft_min_word_len FULLTEXT в mysql

  2. По-добър начин да запазите парола в mysql, която може да бъде декриптирана и с помощта на php

  3. MySQL проверява дали таблицата вече съществува

  4. Как да се свържа с Amazon RDS чрез SSL?

  5. автоматично актуализира полето на mysql въз основа на стойността на друго поле