source

INSERT...에서 2행의 영향을 받는 이유는 무엇입니까?중복된 키 업데이트 시?

itover 2023. 1. 25. 08:33
반응형

INSERT...에서 2행의 영향을 받는 이유는 무엇입니까?중복된 키 업데이트 시?

하고 있어요.INSERT ... ON DUPLICATE KEY UPDATE잠깐 동안PRIMARY KEY다음 표에 나타냅니다.

DESCRIBE users_interests;
+------------+---------------------------------+------+-----+---------+-------+
| Field      | Type                            | Null | Key | Default | Extra |
+------------+---------------------------------+------+-----+---------+-------+
| uid        | int(11)                         | NO   | PRI | NULL    |       |
| iid        | int(11)                         | NO   | PRI | NULL    |       |
| preference | enum('like','dislike','ignore') | YES  |     | NULL    |       |
+------------+---------------------------------+------+-----+---------+-------+

그러나 이러한 값은 고유해야 하지만 영향을 받는 행은 2개입니다.

INSERT INTO users_interests (uid, iid, preference) VALUES (2, 2, 'like')
ON DUPLICATE KEY UPDATE preference='like';
Query OK, 2 rows affected (0.04 sec)

왜 이런 일이 생기는 건가요?

편집

비교에 대해서는, 다음의 쿼리를 참조해 주세요.

UPDATE users_interests SET preference='like' WHERE uid=2 AND iid=2;
Query OK, 1 row affected (0.44 sec)
Rows matched: 1  Changed: 1  Warnings: 0

매뉴얼:

중복 키 업데이트 ON을 사용하면 행당 해당 행 값은 행을 새 행으로 삽입하면 1이 되고 기존 행이 업데이트되면 2가 됩니다.

행을 갱신했는지(키 입력만 했는지) 알 수 있습니다.http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

언급URL : https://stackoverflow.com/questions/3747314/why-are-2-rows-affected-in-my-insert-on-duplicate-key-update

반응형