我正在为我的电视剧网站构建一个背板,我有 2 张 table 。一个称为表演,另一个称为季节。
结构:
节目 - show_id PK
、show_title
季节 - season_id PK
、show_id
(外键)、season
我在后端的表格中列出了所有电视节目名称,并带有删除按钮,但是当我按删除时,它不会删除该节目,因为它也附加了季节。如果我尝试删除没有附加季节的节目,它将毫无问题地从数据库中删除它。
我的代码在remove.php 上看起来像这样:
$id=$_GET['id'];
// Delete show
$sql="DELETE FROM shows WHERE shows_id='$id'";
$result=mysql_query($sql);
我猜我还需要删除分配给同一节目的季节,但我不确定如何去做。
最佳答案
如果您的 MySQL 表使用 InnoDB,那么如果您检查/更改了外键的约束,那么您的生活可能会非常简单。
更改这些取决于您的设置方式,无论您是使用命令行界面还是某些 GUI 来管理数据库。
但是当您在季节表中创建外键字段时,您设置了约束。如果将该约束更新为如下所示:
更新时:不执行任何操作 \\删除时:级联
现在,只要您从节目中删除一行,由于级联规则,存在的任何关联季节行都将被自动删除。非常有帮助,是设置规范化数据库的必备条件。
http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
关于php - 电视节目数据库 : delete shows that has foreign key seasons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529774/