2013-03-25 51 views
0

我有像下面的表删除多个行与2条件


CategoryGroup

  • INT product_group_id(PK)
  • 为nvarchar(300)product_group_en_name
  • INT parent_group_id

现在我有表像这样

product_group_id -- product_group_en_name -- parent_group_id 
    1     Phones    Null <---- category name 
    2     LapTops    Null <---- category name 
    3     Nokia x3    1 <---- product under Phones Category 
    4     HP probook    2 <---- product under LapTops Category 

在这里,我想要的东西(当我删除类别,我想该类别下的所有产品中删除太)

+0

Cacade删除是实现这一目标,但要小心,最简单的方法!级联删除可能是邪恶的! – 2013-03-25 14:06:14

回答

2

使用Cascading Referential Integrity Constraint

ON DELETE CASCADE 

其中:

指定如果试图删除行与其他表中现有行的外键所引用的键 ,包含这些外键的所有行 也被删除。

在定义这个foregin关键parent_group_id

+0

可以请你简单的代码做 我有点困惑在这里 – 2013-03-25 18:40:02

+0

@MarwanAyad - 这是在同一个表中创建的,我的意思是在你的例子中,你是否希望这个'parent_group_id'被引用到同一个表的列' product_group_id'?另外,这些父类对于儿童类别是递归的还是不是? – 2013-03-26 06:43:59

+0

是的,我想要什么,是的,它在parent_group_id递归 – 2013-03-30 11:26:49