1. 程式人生 > >多個關聯表的批量插入實踐

多個關聯表的批量插入實踐

之前接觸到的都是單表的批量插入,這沒什麼問題,但現在是多個表的一個批量插入。

例如表A、表B,其中表B關聯表A,現在的要求是插入資料到表A、表B中,因為存在外來鍵的關聯,所以必須表A先有主鍵,才能插入外來鍵到表B,這就存在一個尋找剛插入的表A的主鍵問題,你們覺得有什麼方法可以解決呢?

這裡的做法是:

在表A中設定一個欄位:rownum,記錄當前插入資料的數目,先插入表A,因為當前rownum可以知道,然後根據rownum去表A中查詢主鍵ID,再插入表B中

sql示例:

CREATE PROCEDURE batch_insert()
BEGIN
  DECLARE s INT DEFAULT 0;
   DECLARE COURSOR cursor_name FOR
   SELECT @rownum:
[email protected]
+1 AS rownum, * FROM 要查詢資料插入到表A中的資料表; DECLARE CONTINUE HANDLER SQLSTATE '02000' SET s = 1; OPEN cursor_name; FETCH cursor_name INTO col_rownum, ...; WHILE s <> 1 DO INSERT INTO 表A(rownum,...) VALUE(col_row_num,....) SELECT id INTO col_a_id FROM A WHERE rownum=col_rownum; INSERT INTO B(a_id,...) VALUE(col_a_id,....) FETCH cursor_name INTO col_rownum, ...; END WHILE; END;