Mysql 使用Select和Limit 1插入会导致重复键错误

Mysql 使用Select和Limit 1插入会导致重复键错误,mysql,select,insert,duplicates,limit,Mysql,Select,Insert,Duplicates,Limit,我有以下问题: INSERT INTO track (`TrackId`, `ArtistId`) ( SELECT 300000001, artist.artistId FROM artist WHERE NormalizedArtist LIKE 'djotzinikp' limit 1 ); 这会导致重复键错误,但表实际上没有具有给定id的条目。Select本身(不受限制)返回2行。这里不可能应用限制,所以我只能在select中得到一行吗?我还尝试将其存储在临

我有以下问题:

INSERT INTO track (`TrackId`, `ArtistId`) 
(
   SELECT 300000001, artist.artistId
   FROM artist 
   WHERE NormalizedArtist LIKE 'djotzinikp'
   limit 1
);

这会导致重复键错误,但表实际上没有具有给定id的条目。Select本身(不受限制)返回2行。这里不可能应用限制,所以我只能在select中得到一行吗?我还尝试将其存储在临时select中,但这也不起作用。没有办法吗?

是的,可以应用
限制。对不起。我相信数据库。您有重复的密钥错误。您需要检查主键以及任何唯一键。只有TrackId是主键。我们还有关于Trackname、ArtistId和ReleaseId的3个索引。但索引是否自动唯一?如何检查这些唯一的密钥?我刚刚发现了错误,有一个硬编码字符串加载了数据库的另一个版本,其中的入口是allready制作的。。。不过,谢谢你的帮助=)