UPDATE或INSERT语句尝试插入重复键

时间:2015-03-29 18:43:08

标签: sql oracle merge

我正在尝试使用此查询更新表格,其中我正在添加一位名为Helen Partou的新音乐家,他最近学会了如何充分演奏手鼓。这是查询:

merge into MusicianInstrument i
using Musician m
on (m.musicianNo = i.musicianNo 
and i.instrumentName = 'Tambourine'
and m.musicianName = 'Helen Partou')
when matched then update set levelOfExpertise = 'Adequate'
when not matched then insert (i.musicianNo, i.instrumentName, i.levelOfExpertise)
values (m.musicianNo, 'Tambourine', 'Adequate');

但是,此错误一直出现: UPDATEINSERT语句尝试插入duplicate key

错误可能暗示没有现有密钥。以下是对每个音乐家特定数据的原始插入语句:

insert into MusicianInstrument(musicianNo,instrumentName,levelOfExpertise)
values('04','Saxophone','Expert');
insert into MusicianInstrument(musicianNo,instrumentName,levelOfExpertise)
values('04','Harp','Average');

由于MusicianInstrument表中没有任何关于Helen在适当级别学习手鼓的详细信息,因此merge into语句应该使用此信息更新表格。

为什么我收到此错误?我目前使用的RDBMS是Oracle。任何帮助将非常感激!

感谢。

0 个答案:

没有答案