zoukankan      html  css  js  c++  java
  • 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就是错误的。



  • 相关阅读:
    一周心得5:
    一周心得4:
    历史上两个人合作成功的案例:
    对结对编程的理解:
    一周心得3:
    一周心得2:
    有关IT行业模仿案例及自己的评价与解析:
    一周心得:
    不懂的问题:
    自我介绍以及期望与目标:
  • 原文地址:https://www.cnblogs.com/xiaowenwu/p/5937835.html
Copyright © 2011-2022 走看看