我有兩種不同的文件。一個是按文件夾組織的。另一個是由客戶組織的。下面是表的結構,在MySQL:如何在1到1表中的相應行被刪除時自動刪除表中的行?
Table docs
ID
title
Table folderDocs
docID -> docs(ID)
folderID -> folders(ID) ON DELETE CASCADE
Table clientDocs
docID -> docs(ID)
clientID -> clients(ID) ON DELETE CASCADE
我正在尋找一個優雅的方式時,文件夾或客戶端被刪除自動刪除文件。以上級聯規則並不完全實現這一點。 (即folderDocs中的行將被刪除,但文檔中的相應行將保留。)
有沒有辦法在mysql中設置它,使用級聯規則或其他方法,以便當從folderDocs或clientDocs被級聯刪除,文檔中相應的行也被刪除? (我希望避免必須先編程刪除文件,然後刪除文件夾/客戶端。)
感謝(提前)尋求幫助。
這可能是一個愚蠢的問題,但是你有'docID'設置爲表中的外鍵嗎?因爲你想要的東西聽起來像'ON DELETE CASCADE'所做的,但除非你設置了外鍵,否則它將不起作用。 – 2012-03-06 01:02:00
爲什麼不使用DELETE觸發器? – Roger 2012-03-06 01:32:19
@Rogier - 我認爲DELETE觸發器不起作用,如果刪除是級聯的。如果我誤解了這個,請糾正我。 – user1031947 2012-03-06 01:56:07