php - 电视节目数据库 : delete shows that has foreign key seasons

标签 php mysql

我正在为我的电视剧网站构建一个背板,我有 2 张 table 。一个称为表演,另一个称为季节。

结构: 节目 - 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);

我猜我还需要删除分配给同一节目的季节,但我不确定如何去做。

最佳答案

如果您的 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/

相关文章:

php - 为什么 mcrypt_encrypt() 将二进制字符放在字符串的末尾?

mysql - 检查rails中是否存在记录

MySQL:高效地返回组不为空的分组字段

php - php中验证用户名和密码哪种方式比较好

javascript - 单击按钮后自动滚动到特定的 PHP 消息

php - 如何从一组变量中分配第一个非假变量

PHP/JS 表单类 - 数组与 OO

php - 注册流程+php mysql

mysql - 根据另一列检索数据库数据

php网站连接到数据库服务器