mysql无论如何也做不到用一条语句给两张表插入数据。
创新互联于2013年创立,先为金水等服务建站,金水等地企业,进行企业商务咨询服务。为金水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
理由:一个insert语句仅能在一个表中插入,这是语法的规定。
工具:mysql 5.6
步骤(即插入数据举例):
1、如user表有如下数据:
2、要将一条新数据,id为6,name为lilei插入表中,用如下语句:
insert into user(id,name) values (5,'lilei');
3、插入后结果:
在数据库中创建存储过程,比如存储过程的名字叫做 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就是错误的。
insert all
into A (a,b,c)
values(value-a,value-b,value-c)
into B(d,e,f)
values(value-d,value-e,value-f)
select value-a,value-b,value-c,value-d,value-e,value-f
from TableX
where ...;
标题名称:mysql怎么插入两个表 mysql创建两个表
标题路径:https://www.cdcxhl.com/article24/ddceije.html
成都网站建设公司_创新互联,为您提供全网营销推广、网站改版、定制开发、网站制作、网站收录、网站策划
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联