mysql數據庫---同時插入兩個表以上的數據


mysql數據庫問題,如何同一個操作添加兩個表(a表,b表),並把b表的id添加到a表字段中,b表id自動增長

在數據庫中創建存儲過程,比如存儲過程的名字叫做 test
在java中和正常使用sql的方法一樣, sql = "call test(B1,B2)", B1和B2是假設你將要插入b表中的數據

假設b表的結構是(ID int auto_incremet, B1 int, B2 int)
假設a表的結構是(ID int)

CREATE test(B1 int, B2 int) #假設A1和A2是將要插入b表中的數據
BEGIN
declare new_id as int; #聲明自增長所添加的ID

insert into b(B1,B2) values(B1,B2); #給b插入新的記錄

select last_insert_id() into new_id; #取得新插入記錄的ID

insert into a(ID) values(new_id); #把新插入的ID寫入a表

select new_id; #如果需要的話存儲過程返回新得到的ID給客戶端

END

注意: 為什么推薦使用存儲過程,而不是直接在java程序中使用select last_insert_id(); 因為這個函數是打開當前端口時,返回最后一個插入的自增長的ID, 如果不用存儲過程,可能當前鏈接關閉,或有其他的應用也在其他有自增長ID的表中插入新的記錄, 這時你取回的ID就是錯誤的。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM