Hello everyone,

 

Is there anyway using which we could perform bulk update in firebird. 

 I have two tables A & B. Both tables are referenced by a varchar(100) AR_ID
column.  

-          Total number of rows in each table is around 1 million. Now in
order to get faster result I created a bigint column ref_A_ID in Table B
that is referenced to A_ID column of table A.

-          Now, to reference existing data in table B. I want to update
column ref_A_ID of table B with value of A_ID of table A for proper linking
to table A.

-          I created a query for updating table B is as below 

 

-          EXECUTE BLOCK 

-           AS 

-           DECLARE VARIABLE REF_A_ID BIGINT;

-           DECLARE VARIABLE AR_ID VARCHAR(200);

-           DECLARE VARIABLE _ID BIGINT;

-           

-           BEGIN

-           FOR    SELECT   A. AR_ID,   A.A_ID,   A. _ID  

-                            FROM  TABLE  A 

-                            INNER  JOIN   TABLE  B   ON   B. AR_ID   =  A.
AR_ID

-                            INTO     :AR_ID,    : REF_A_ID,    :_ID 

-              DO 

-                BEGIN

-                          UPDATE   TABLE    B 

-                          SET    B. REF_A_ID    =    : REF_A_ID 

-                          WHERE   ( B. REF_A_ID    IS    NULL  AND  B. _ID
= :_ID)  AND       (B. AR_ID = :AR_ID);

-                END 

-           END        

 

-          Is there a way through which this query can be further optimised
as this query taking time for completion more than 3 -4 hours.  Could I use
batch based update in this query.?

Thanks. 

 

 

With Regards,

Joje 

 

      

  • [firebird-support... 'Joje' j...@codework-solutions.com [firebird-support]

Reply via email to