使用其他表中的数据更新表(规范化)

时间:2013-01-27 20:32:11

标签: sql postgresql select insert

我怀疑是否安装了一个查询来更新和/或在表格中添加数据。

我有一个将提供以下规则的table1:

table1 table2 + 状态字段具有相同的字段,以显示该寄存器是否处于活动状态( “A”)或不活动(“I”)。

对于table1中的每条记录,检查table2中是否有新记录

如果记录存在于table2中并且记录不存在于table1 中,则包括表1中的信息 - 来自table2 +字符“A”(活动)的该记录的所有字段状态字段。

如果记录存在于table2中且记录也存在于table1中,我必须将table2中的id_register与table1中的id_register进行比较

如果此行中的任何数据不同,我必须在table1中插入一个新行 - 表2中的所有字段+ 状态字段中的字符“A”(活动)< / em> - , AND table1中不同的行将在状态字段中使用字符“I”(非活动)进行更新;

如果在table2中删除了记录,则该行将在table1状态字段中收到字符“I”(非活动)。 (删除记录=我必须验证table1中存在的记录,并且表2中不存在)

没有更改的记录将不会更新。

表格:

表1

id_register 名称 地址 电话 电子邮件 日期 值 状态

表2

id_register 名称 地址 电话 电子邮件 日期 值

谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,您正在尝试将更改记录到表中。这是非常可行的使用触发器,但我建议反对它有几个原因。首先,您最近的记录将永远是表2中的活动记录,因此使用时间戳可以避免更新。

其次,不是自己构建解决方案,我会推荐一个我过去使用的模块,即tablelog。这比尝试自己重新实现它简单得多。还有更多的眼球和所有这些......