表内容复制出现问题
A表
-
SQL code
create table CkQD (Id int auto_increment not null, constraint Id_pr primary key(Id), Pn varchar(30), Gz varchar(20), Sl bigint, Jz decimal(10,2), Dw varchar(10), Ckt datetime, Jlr varchar(20), chr varchar(20), Bz varchar(100))
B表
-
SQL code
create table Ck (Id int auto_increment not null, constraint Id_pr primary key(Id), Pn varchar(30), Gz varchar(20), Sl bigint, Jz decimal(10,2), Dw varchar(10), Ckt datetime, Jlr varchar(20), chr varchar(20), Bz varchar(100))
现在我要把每次A表内容插入B表,但是B表的ID列必须用自动生成的,不能插入A表的进来,我的语句出现问题不能执行
-
SQL code
insert into ck(ck.id(default),(select ckqd.Pn,ckqd.Gz,ckqd.Sl,ckqd.Jz,ckqd.Dw,ckqd.Ckt,ckqd.Jlr,ckqd.chr,ckqd.Bz from ckqd,rk where ckqd.Pn = rk.Pn and ckqd.Sl <= rk.Sl));
求解决方法
insert into ck(Pn , Gz , Sl , Jz, Dw , Ckt , Jlr , chr , Bz )
select ckqd.Pn,ckqd.Gz,ckqd.Sl,ckqd.Jz,ckqd.Dw,ckqd.Ckt,ckqd.Jlr,ckqd.chr,ckqd.Bz from ckqd,rk where ckqd.Pn = rk.Pn and ckqd.Sl <= rk.Sl;
select Sl into v_Rk_Sl from Rk where Pn = v_CkQD_Pn;
检查结果是否有多条
开启事务后,出错就会回滚了。
探讨
渐渐发现mysql也挺强大,谁能推荐一本比较精简的入门书
探讨
能帮我把这个过程加个事务嘛假如出现Procedure execution failed
1172 – Result consisted of more than one row,就回滚,分不够再加