mysql 从主表或备份表中获取数据

pnwntuvh  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(67)

使用Oracle DB。
表1:部门
| Deptno| Dname|
| --|--|
| 10 |HR|
| 20 |它|
表2:部门_备份
| Deptno| Dname|
| --|--|
| 10 |HR|
| 20 |它|
假设我有一个与emp表和dept表的连接:(下面查询)

select e.*, d.dept_name
from emp e
left join dept d
   on e.deptno = d.deptno;

字符串
假设表dept不存在,在这种情况下,连接应该更改为dept_backup。(如果主表关闭或不存在,它应该从备份表查询)

select e.*, d.dept_name
from emp e
left join dept_backup d
   on e.deptno = d.deptno;

1qczuiv0

1qczuiv01#

如果你在PL/SQL中使用它,那么你可以检查并尝试如下:

DECLARE

V_TAB VARCHAR2(128);
MYVAR RELEVANT_DATATYPE;

BEGIN

SELECT MIN(TABLE_NAME) -- as MIN will give your main table dept if both tables exist
INTO V_TAB
FROM ALL_TABLES
WHERE TABLE_NAME IN ('MAIN_TABLE', 'BACKUP_TABLE');

EXECUTE IMMEDIATE '
   SELECT COLUMN
     FROM EMP E LEFT JOIN ' 
     || V_TAB
     || ' D ON E.DEPTNO = D.DEPTNO' INTO MY_VAR;
...
...
END;
/

字符串

相关问题