• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

表内容复制出现有关问题

mysql 搞代码 7年前 (2018-06-02) 141次浏览 已收录 0个评论

表内容复制出现问题
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)) 

欢迎大家阅读《表内容复制出现有关问题》,跪求各位点评,by 搞代码

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,就回滚,分不够再加


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:表内容复制出现有关问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址