0

主キーと、user_idx_name という 2 つの列に基づく複合インデックスを持つテーブル構造があります。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 という INDEX KEY を指定する必要がありますか?

4

1 に答える 1

4

http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

ON DUPLICATE KEY UPDATE を指定し、 UNIQUE インデックスまたは PRIMARY KEYで値の重複を引き起こす行が挿入された場合、MySQL は古い行の UPDATE を実行します。

于 2013-06-19T14:08:12.313 に答える