Update a table with join?

前端 未结 4 2093
栀梦
栀梦 2020-12-03 16:20

I am trying to update table A with data from table B. I thought I can do something like this

update A 
set A.DISCOUNT = 3 
from INVOICE_ITEMS A
join ITEM_PRI         


        
4条回答
  •  一向
    一向 (楼主)
    2020-12-03 16:46

    From FB manual, if you are using Firebird 2.0 or above, you can use EXECUTE BLOCK to write a more effective statement:

    EXECUTE BLOCK
    AS
    DECLARE VARIABLE field1 type;
    DECLARE VARIABLE field2 type;
    -- ...etc.
    DECLARE VARIABLE pk type;
    BEGIN
       for select pk, field1, field2, ... from src_table
       into :pk, :field1, :field2, ...
       do update dest_table set field1 = :field1, field2 = :field2, -- ...
       where pk = :pk;
    END
    

提交回复
热议问题