【问题标题】:Update table using data from other tables (normalization)使用其他表中的数据更新表(规范化)
【发布时间】:2013-01-11 04:39:34
【问题描述】:

我怀疑要挂载查询以更新和/或添加表中的数据。

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

table1 具有与 table2 相同的 fields + status 字段以显示寄存器是否处于活动状态( "A") 或非活动状态 ("I")。

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

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

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

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

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

没有变化的记录不会被更新。

表格:

表1

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

表2

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

谢谢!

【问题讨论】:

    标签: sql postgresql select insert


    【解决方案1】:

    在我看来,您正在尝试记录对表的更改。使用触发器这是非常可行的,但出于几个原因,我建议不要这样做。首先,您最近的记录将始终是您在表 2 中的活动记录,因此使用时间戳可以避免更新。

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

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2011-09-24
      • 2011-06-29
      • 2020-08-29
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      相关资源
      最近更新 更多