0

我需要将一个表 ( ) 中的一列 ( TYPE) 复制到表 ( CUTOMER) 中的另一列 ( UNDEF000) ORDERS,每次有人更新列 ( TYPE) 以自动复制 ( UNDEF000) 时,表CUSTOMER并由ORDERS列 ( PRE_ORDERCODE) 链接。

首先,我尝试填写UNDEF000TYPE

UPDATE ORDERS 
JOIN CUSTOMER
SET ORDERS.UNDEF000=CUSTOMER.TYPE
WHERE ORDERS.PRE_ORDERCODE= CUSTOMER.PRE_ORDERCODE; 

不起作用:(

UPDATE ORDERS
SET ORDERS.UNDEF000= CUSTOMER.TYPE
FROM CUSTOMER CUSTOMER
INNER JOIN ORDERS ORDERS
ON CUSTOMER.PRE_ORDERCODE= ORDERS.PRE_ORDERCODE

你能帮我解决这两个问题吗?

4

1 回答 1

0

我认为你的更新应该是这样的:

UPDATE ORDERS O SET O.UNDEF000= (
SELECT CUSTOMER.TYPE FROM CUSTOMER 
WHERE CUSTOMER.PRE_ORDERCODE = O.PRE_ORDERCODE); 

触发代码:

create or replace trigger after_update_customer after update on
customer for each row
declare

begin
update orders set UNDEF000 = :new.type 
where pre_ordercode = :new.pre_ordercode;
end;
于 2015-02-26T21:59:59.893 回答