SQL或PHP级联更新和删除

SQL或PHP级联更新和删除,php,mysql,function,triggers,Php,Mysql,Function,Triggers,我正在创建一个系统,你可以上传照片到一个画廊,你可以给这个画廊一个名称和描述,并将它与你想要的多少图像相关联。我正在使用MySQL和PHP来实现这一点。然而,我有一点进退两难,那就是如果用户选择删除某个图库,我想允许用户删除该图库附带的所有图像,或者将图像设置为其他默认图库 我设置数据库的方式是使用两个表,一个是图像表,其中包含图像名称、描述、实际图像名称(表示.jpeg图像)和画廊id字段。gallery表包含名称、说明及其自己的id 我最近刚刚学习了一些关于使用外键级联触发器的知识,但我不太

我正在创建一个系统,你可以上传照片到一个画廊,你可以给这个画廊一个名称和描述,并将它与你想要的多少图像相关联。我正在使用MySQL和PHP来实现这一点。然而,我有一点进退两难,那就是如果用户选择删除某个图库,我想允许用户删除该图库附带的所有图像,或者将图像设置为其他默认图库

我设置数据库的方式是使用两个表,一个是图像表,其中包含图像名称、描述、实际图像名称(表示.jpeg图像)和画廊id字段。gallery表包含名称、说明及其自己的id

我最近刚刚学习了一些关于使用外键级联触发器的知识,但我不太了解它们是如何工作的,所以我不确定这是否是一个解决方案。我的主要目标是允许用户删除库并更新图像表中的所有库id,或者删除所有这些图像。如果没有一种方法可以用SQL实现这一点,那么如何用PHP实现这一点呢?我试图弄明白,并得出结论,我可能必须使用某种循环


在此方面的任何帮助都将不胜感激

如果有人请求删除其中一个画廊,而该画廊的id为“34”,您可以

$gId = 34;
$query = 'DELETE FROM `images` WHERE `gallery_id` = $gId';
$res   = mysql_query($query);

// or assign to new gallery
$gId    = 34;
$newGid = 5;
$query  = 'UPDATE `images` set `gallery_id` = $newGid WHERE `gallery_id` = $gId';
$res    = mysql_query($query);

如果您在MySQL 5.5中使用InnoDB表,您可以看到一些文档,解释如何使用约束实现级联删除或更新。

请简化这段文字好吗?我忘了分成几段,对此表示抱歉。:)我想我已经做了适当的调整。