我有一个表结构,它有一个主键,然后是基于名为user_idx_name的两列的复合索引。如果我使用ON DUPLICATE KEY UPDATE,它会查看PRIMARY键,user_idx_name键还是两者都查看?
我的表结构是这样的:
Keyname Type Unique Packed Column Cardinality Collation Null Comment
PRIMARY BTREE Yes No id 67420 A
user_idx_name BTREE Yes No user_id 67420 A
file_name 67420 A
INSERT INTO table1
(`col1`, `col2`, `col3`, `col4`)
VALUES
('val1', 'val2', 'val3', 'val4')
ON DUPLICATE KEY UPDATE
`col2`='val2',
`col3`='val3', [...]
我需要指定我的索引键名为user_idx_name吗?
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
如果你指定了ON DUPLICATE KEY UPDATE,并且插入一行会导致UNIQUE索引或主键中的重复值,MySQL将执行旧行的UPDATE。