Sql UPDATE或INSERT语句试图插入重复的键

Sql UPDATE或INSERT语句试图插入重复的键,sql,oracle,merge,Sql,Oracle,Merge,我正试图使用这个查询来更新一个表,其中我添加了一位名叫海伦·帕图的新音乐家,她最近学会了如何充分地演奏手鼓。以下是查询: 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 level

我正试图使用这个查询来更新一个表,其中我添加了一位名叫海伦·帕图的新音乐家,她最近学会了如何充分地演奏手鼓。以下是查询:

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');
但是,此错误不断出现:
UPDATE
INSERT
语句试图插入一个
重复键

如错误所示,没有现有密钥。以下是原始insert into语句,其中包含特定于每个音乐家的数据:

insert into MusicianInstrument(musicianNo,instrumentName,levelOfExpertise)
values('04','Saxophone','Expert');
insert into MusicianInstrument(musicianNo,instrumentName,levelOfExpertise)
values('04','Harp','Average');
由于
MusicianInstrument
表中没有关于Helen在适当级别学习手鼓的任何详细信息,因此merge-in语句应使用此信息更新该表

为什么我会犯这个错误?我目前使用的
RDBMS
是Oracle。任何帮助都将不胜感激


谢谢。

您不需要向我们展示您的表定义并确定键是什么吗?请将Helen Partou移到第2行。这是她的位置。您可能正在使用此答案,该答案已更正。