我正在尝试使用此查询更新表格,其中我正在添加一位名为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');
但是,此错误一直出现:
UPDATE
或INSERT
语句尝试插入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。任何帮助将非常感激!
感谢。