2012-11-23 72 views
2

我正在建立一個我的電視劇網站的背板我有2個表格。一個叫演出,另一個叫季節。電視節目數據庫:刪除顯示有外鍵季節

結構: 節目 - show_id PKshow_title

季節 - season_id PKshow_id(外鍵),season

我列出了所有的電視節目名稱中的表中後端與刪除按鈕然而,當我按刪除它不會刪除該節目,因爲它有季節附加它。如果我嘗試刪除沒有附加季節的節目,則將其從數據庫中刪除,沒有任何問題。

我的代碼看起來像這樣的remove.php:

$id=$_GET['id']; 

// Delete show 
$sql="DELETE FROM shows WHERE shows_id='$id'"; 

$result=mysql_query($sql); 

我猜我還需要刪除指定的季節也同樣顯示,但我如何去這樣做不確定。

回答

1

如果你在你的MySQL表中使用InnoDB,如果你檢查/更改了你的外鍵的約束條件,生活對你來說可能非常簡單。

更改這些取決於您如何設置,無論您是使用命令行界面還是某些GUI來管理數據庫。

但是,當您在季節表中創建外鍵字段時,您將設置約束條件。如果您更新約束如下:

在更新:什麼都不做 \\在刪除:級聯

現在任何時候刪除節目一排,無論存在關聯賽季行將被刪除自動由於級聯規則。非常有用,而且必須設置規範化的數據庫。

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

+0

非常感謝您! –

1
$id=$_GET['id']; 

// Delete all seasons for this show first. 
$sql="DELETE FROM seasons WHERE show_id='$id'"; 

// Now, Delete show 
$sql="DELETE FROM shows WHERE id='$id'";