2011-09-21 42 views
0

例如,如果我有一个表员工的触发器。我想从表格部门创建一个光标循环。然后,我想获取该属性并将其插入表公司。我猜测答案是否定的,因为我得到一个运行时错误,表示无法找到表部门,但是有什么办法可以获得相同的效果吗?我可以创建一个触发器,该触发器涉及一个表格上没有触发器的光标?

CREATE TRIGGER myTrigger AFTER INSERT 
ORDER 1 ON dba.employee 
REFERENCING NEW AS newRow 
FOR EACH ROW 
BEGIN 
    FOR myloop AS getIDCursor INSENSITIVE CURSOR FOR SELECT department_id FROM department 
    DO 
     INSERT INTO company (...) VALUES (...); 
    END FOR 
END 
+2

是的,你可以,但你需要在使用它之前声明那个光标。 '开始'之后# – Johan

+0

触发器可能会执行很多次,并且您无法真正控制它的执行时间。我会**从来没有**在触发器内放置** CURSOR **!你只是要求性能问题在这里..... –

回答

1

为什么你像使用过程语言一样使用SQL?只要:

INSERT INTO company SELECT department_id FROM department 

不需要循环。