我们如何在一个以上的表中更新?

时间:2011-03-31 10:52:39

标签: sql oracle

我的数据库是Oracle 10g。

我有5个不同的表,每个表都有列状态,默认值为'N'。

现在我想在所有5个表中更新并将该状态设置为“Y”。

那么是否有任何单一查询或方式,以便我可以在所有5个表中更新,而无需执行单独的更新查询?

2 个答案:

答案 0 :(得分:11)

即使有一个复杂的答案,我也愿意这样做:

UPDATE table1 SET columnX = "Y" ;
UPDATE table2 SET columnX = "Y" ;
UPDATE table3 SET columnX = "Y" ;
UPDATE table4 SET columnX = "Y" ;
UPDATE table5 SET columnX = "Y" ;

现在,如果你有5000张桌子,那就谈谈吧。

答案 1 :(得分:2)

如果表名遵循正则表达式,则可以编写一个PL \ SQL代码:

  • 从oracle对象表中提取所有表;
  • 使用动态语句构造VARCHAR2变量以更新值;
  • 使用包DBMS_SQL来执行此动态语句;

再见