将查询出的数据添加到另一张表的主键问题

zhuguangyuan 2009-11-27 12:10:54
我需要将第一张表的数据插入到第2张表里,但是他报了一个违反唯一性主键,我的主键是再varcher2类型的,难道这个还能重复么?这个怎么才能解决呢?谢谢大家@!
...全文
328 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zswangg 2010-04-13
  • 打赏
  • 举报
回复

主键是不能重复这和类型无关!
iqlife 2009-11-27
  • 打赏
  • 举报
回复
把第2张表里的主键取消
就可以插入了
zhangwonderful 2009-11-27
  • 打赏
  • 举报
回复
3楼方案不错。
小灰狼W 2009-11-27
  • 打赏
  • 举报
回复
为什么这么问呢
主键是不能重复的,和varchar2还是number无关
怎么解决要看你怎么处理,如果要插入的数据的主键在第二张表中已经存在的话,你要怎么处理,是不插入,还是修改已存在的记录
可以试试用merge into
merge into table2 a
using table1 b
on (a.id=b.id)
when matched then
update set a.col1=b.col1,a.col2=b.col2,a.col3...
when not matched then
insert values(b.id,b.col1,b.col2....)
如果不处理,且数据库为10g以上版本,when matched部分可以不填写
根据需要来修改
liusong_china 2009-11-27
  • 打赏
  • 举报
回复
应该是有重复数据吧。。。。
Dave 2009-11-27
  • 打赏
  • 举报
回复

主键是唯一的,不能重复, 你插入的数据和现在的数据有相同的吗?

简单的描述下表结构和你的操作...








---------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
QQ 群:62697716
kingkingzhu 2009-11-27
  • 打赏
  • 举报
回复
插入的数据和原有的数据有重复
用3楼的 merge into 可以搞定你的问题

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧