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

2021-07-22 03:31:48 字數 904 閱讀 9386

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

例如表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:=@rownum+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;

表資料的批量插入

當乙個表要插入資料庫時,手動編寫sql插入語句是不太現實的,效率也比較低。我用的是sqlbulkcopy view code public void executetransactionscopeinsertex datatable dt,string tablename sbc.writetose...

關聯表插入資料問題

最近在整一關聯表插入資料問題 老崩潰了 不過在大家的幫助下 還是搞定了 大家可以看看 insert into table name projectname,managerid,userid,businessname select dasdasdasad select max userid from ...

SOLR對多個(關聯)表建立索引

首先在資料庫建立一張表,本來有乙個tuser表了,我又建立了乙個role表,就兩三個字段,沒什麼特殊的,然後在裡面隨便新增幾條資料即可,看一下資料庫 資料庫建立完成之後就是修改data config.xml檔案了,因為資料庫跟solr之間的關聯主要就是建立在這個檔案上面的,所以接下來就是修改該檔案了...