更新查询Teradata的奇怪行为

时间:2018-06-19 16:36:41

标签: sql sql-update teradata teradata-sql-assistant

以下查询更新了set语句中未提及的列。查询有问题吗?

谢谢。

UPDATE EDW1
   FROM
    TABLE1  EDW1, ( SELECT EDW2.A ,  EDW2.B,    EDW2.C,     EDW3.D,     EDW3.E , EDW3.F
    FROM TABLE2  EDW2 LEFT JOIN  TABLE3 EDW3 ON
                                               EDW2.X =EDW3.X )  EDW4
       SET
        product_name= EDW4.B
       ,revenue_type= EDW4.C
       ,product_type = EDW4.D
       ,product_category= EDW4.E
       ,product_family= EDW4.F    WHERE  EDW1.A= EDW4.A;

1 个答案:

答案 0 :(得分:1)

根据您的示例,只有以下几列会被更新。

product_name = EDW4.B
revenue_type = EDW4.C
product_type = EDW4.D
product_category = EDW4.E
product_family = EDW4.F
  • 我猜桌子上有个触发器可以更新
  • 有一个正在监视和执行维护的工作或程序
  • 数据库启用了某种审计跟踪,可以进行更新
  • 其他人正在同时进行更改

因此,为回答您的问题,您的查询将仅更新列出的那些表。如果您有可以测试的开发区域,则可以尝试:

  • 要使用配置文件工具来查看其他查询,请在查询完成后立即运行。
  • 只需简单地更新一列,您看到这种现象了吗?然后缩小导致问题的原因

顺便说一句,我的钱已经到手了:)