我有一个表格,我希望将一些数据复制回同一个表,其中两列发生了变化:
e.g:
TableMusic
titleid musicid tap_id value
1234 1 3 this is music
1324 1 3 this is music test
我想将titleid和值写回到musicid = 3
的同一个表中此处索引列为titleid,musicid
我已完成以下脚本但出现错误:尝试在对象'tablemusic'中插入重复的键行,并使用唯一索引'pk_tablemusic'
insert into tablemusic (titleid, musicid, value )
select titleid, 3, value
from tablemusic
where musicid=1
我在这里做错了什么?有人可以提出一个干净的脚本来完成工作。
以下是我的数据库提取的一个titleID:
titleid musicid tap_id value
462847 1 3 this is my music value
462847 2 1
462847 3 1
462847 4 1
所有titleid都是一样的。现在我要做的是将值从musicid = 1复制到musicid = 3,并且有时将tap_id更改为3.我希望这对我想要实现的内容足够清楚
最终结果希望实现:
titleid musicid tap_id value
462847 1 3
462847 2 1
462847 3 3 this is my music value
462847 4 1
答案 0 :(得分:0)
复杂性是存在一些记录,因此尝试简单的插入会复制密钥并导致错误。你在这里要做的是将查询分解为两个prts
答案 1 :(得分:0)
这是基于马克回答的脚本,但有一些更改。谢谢MARK - 你是我的英雄。
首先我运行了这个脚本:
从tablemusic中删除musicid = 3
在上面之后我运行了以下脚本:
插入tablemusic(titleid,musicid,tap_id,value)
选择titleid,3,3,值
来自tablemusic
musicid = 1
这给了我想要实现的结果,如上面的问题所示。