更新看表

时间:2011-02-14 13:30:54

标签: database oracle oracle10g

大家早上好,

我们有test1和test2环境。在这两种环境中都有2个表联系人和用户表。

T.Contact T.User
T1.User

联系人是参考表,必须更新用户表ID。现在,我们正在执行以下步骤来更新T.Contact的用户ID:

  1. 根据T.Contact
  2. 中的用户ID在T.User的ID中查找姓氏
  3. 在T1.User中查找更新ID的ID
  4. 更改T.Contact
  5. 中的用户ID

    我们想知道是否存在更好的方式。

    如果我们有相同的数据库,我们可以这样使用:假设。

    UPDATE T.Contact
    SET USER_ID IN (
        SELECT USER_ID 
        FROM T.User A, T.Contact B , T1.User C
        WHERE A.LNAME = C.LNAME 
          AND A.FNAME = C.FNAME 
          AND A.USER_ID = B.USER_ID
    )
    

    是否可以调用不同的环境DB?

    由于

    添加备注:

    我们应该说不同的模式而不是环境。

2 个答案:

答案 0 :(得分:0)

听起来你正在寻找database links

您可以创建从一个数据库到另一个数据库的链接,如下所示:

CREATE DATABASE LINK otherdb CONNECT TO schema IDENTIFIED BY password USING 'service_name';

然后你可以在这样的查询中使用它:

select ...
from tablename@otherdb;

答案 1 :(得分:0)

您是在处理两个单独的数据库,还是在同一个数据库中只处理两个模式?