删除表中的行 - 还删除它影响的所有行的最佳方法是什么?

时间:2016-02-05 11:56:32

标签: sql oracle primary-key

我创建了一个非常简单的SQL脚本(见下文),如果列名是特定值,则会删除表中的行。

DELETE FROM table_name
 WHERE some_column=some_value; 

但是,此表还会将数据输入到我的数据库中的其他表:例如,它是ID (Primary Key).

如何删除其他表中的行?

2 个答案:

答案 0 :(得分:0)

就像@Gordon说的那样, 在table_name添加外键并要求cascade_on_delete

DELETE table1, table2 FROM table1 INNER JOIN table2 ON table1.column=table2.column AND table1.column = someValue

...不确定正确的合成器,但这样可行。

答案 1 :(得分:0)

我建议您在数据库中使用存储过程进行删除。您不仅可以在正确的约束顺序中执行删除操作,而且还可以获得无需在表上授予删除权限的额外好处 - 仅对proc执行权限。