mysql数据库问题,如何同一个操作添加两个表(a表,b表),并把b表的id添加到a表字段中,b表id自动增长

我是用java连接数据库的... 我是用java连接数据库的 展开
 我来答
rob3
2014-06-07 · TA获得超过105个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:49万
展开全部
在数据库中创建存储过程,比如存储过程的名字叫做 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就是错误的。
xin宇宙的灵魂
2014-06-06 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:85.5万
展开全部
建立一个中间表分别设置获取对于值,这个属于传递赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b68195
2014-06-06 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1712万
展开全部
用触发器可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式