我很难理解INSERT ... ON DUPLICATE KEY UPDATE
的用法,假设我有一个tracks
表,其中包含以下列:
id tracklist_id number name
1 1 1 Track1
2 1 2 Track2
3 1 3 Track3
4 2 1 Track1
5 2 2 Track2
6 2 3 Track3
如果已经为轨道列表1定义了轨道n°1(如示例中所示),那么只需UPDATE
name
,如果不是INSERT
它。我尝试过类似的东西:
INSERT INTO tracks (number, name, tracklist_id) VALUES ('1', 'Track1', '1'), ('2', 'Track2', '1'), ('3', 'Track3', '1') ON DUPLICATE KEY UPDATE name=VALUES(name);
我认为我的问题与PRIMARY KEY
有关,我试图将tracklist_id
定义为主键但没有成功,因为它在表格中多次出现(这是我的第一部分)我不确定我完全理解。
答案 0 :(得分:2)
只需更改为UNIQUE复合材料
ALTER TABLE `tracks` ADD UNIQUE `trkid_number` (`tracklist_id`,`number`);