我有一个表结构,它有一个主键,然后有一个基于名为 user_idx_name 的两列的复合索引。如果我使用ON DUPLICATE KEY UPDATE,它会查看主键、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', [...]
Run Code Online (Sandbox Code Playgroud)
我是否需要指定名为 user_idx_name 的索引键?
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
如果指定 ON DUPLICATE KEY UPDATE,并且插入的行会导致UNIQUE 索引或 PRIMARY KEY中出现重复值,则 MySQL 将对旧行执行 UPDATE。