我是oracle的新手,并且遇到了我的一个SQL查询问题。
有2个用户: User1
和 User2
:
Tab1 Tab2
-------- --------
EmpNo EmpNo
EmpName EmpName
ContactNo Salary
位置
User2具有User1.Tab1中的所有权限,并且两个表之间没有外键关系。
问题:
我想在tab2中添加一列“NameDesignation
“我想在检查以下条件后在此列中插入值:
WHEN User1.Tab1.EmpNo = User2.Tab2.EmpNo THEN
INSERT INTO Tab2 VALUES (&designation)
我真的不知道该怎么做,并希望得到一些帮助。有什么想法吗?
尝试这个:
update user2.tab2.empno t2
set NameDesignation= &designation
where exists (select ''
from user1.tab1 t1
where t1.empno=t2.empno)
(更新语句以匹配编辑的问题)
你需要一组触发器,
插入或更新后:
CREATE OR REPLACE TRIGGER tab1_after_changed
AFTER INSERT OR UPDATE
ON tab1
FOR EACH ROW
BEGIN
DELETE FROM User2.Tab2 WHERE EmpNo=:NEW.EmpNo;
INSERT INTO User2.Tab2(EmpNo,EmpName,NameDesignation)
VALUES (:NEW.EmpNo,:NEW.EmpName, (SELECT DesignationName FROM Designation where DesignationID=:NEW.DesignationID));
END;
我只想象一个带有Designation(DesignationID号,DesignationName varchar2(xx))和Tab1具有DesignationID(数字)的表。