读书人

表内容复制出现有关问题

发布时间: 2012-05-29 12:16:00 作者: rapoo

表内容复制出现问题
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,就回滚,分不够再加

读书人网 >Mysql

热点推荐