不同表上的简单触发器更新

时间:2014-04-10 19:51:30

标签: mysql sql postgresql

我们说我有以下表格(主键为粗体, - >符号表示功能依赖)

state_name ,表面,居住者(表国家)

HsCode - > HsName,state_name(Table High_Schools)

Security_Social_Number - >姓名,地址(TABLE student)

TABLE Student_Apply( Social_Number,HsCode ,University_degree)

假设我们已填写数据,现在我们想修改(删除或更新)状态表中的某些行。

如果我们从表状态中删除状态,则应删除包含此状态的其他表中的所有行。如果我们改变state_name,其他更改应该更改此值。

我们应该如何实现这一目标?实施触发器?限制?我将使用postgreSQL,但我认为它是一个非常通用的问题。

在这种情况下,我们更改主键;如果它是非主要关键字段,解决方案会有所不同吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

使用ON DELETE CASCADE ON UPDATE CASCADE的外键。如果父行被删除,它将删除引用表中的行,如果更新父行,则更新引用表中的行。