有更好的方法来更新多个表中的相同字段吗?

时间:2013-08-21 07:28:16

标签: sql oracle

我有10个表,我想用相同的值更新所有表中的相同字段。更新将一个字段作为条件,该字段是一个表中的主键,而另一个表中是外键,并且有一些表甚至不是键。例如:

  TABLEX               TABLEY                 TABLEZ         

  FIELD1 (PK)          FIELD1(FK)             FIELD1               
  FIELD3               FIELD3                 FIELD3

我想在所有表中更新FIELD3,并为相同的FIELD1使用相同的值。我被告知使用一个存储过程使用游标a for循环来更新表,并在调查了一下之后我已经阅读了游标,但是效率非常高。我想知道这是最好的方法还是你知道更好的方法。我是sql的新手。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

你真的不需要使用游标循环 - 一个简单的SQL UPDATE语句在所有10个表上都可以正常工作。但是,您必须发出10个单独的UPDATE语句,没有办法解决这个问题。

注意:如果你使用了动态SQL,你可能会得到更少的代码但是我非常推荐它反对它有很多原因:代码可读性,破坏内置的SQL对象依赖性跟踪,SQL注入可能性...)

相关问题