내가 다음과 같이 테이블 user_count
정의가 있다고 가정 : 사용자의 기존 레코드가 존재하거나 다른 새 레코드를 삽입 할 때 내가하고 싶은 것은 하나 count
증가이다'중복 증가'를 구현하는 두 가지 방법의 차이점은 무엇입니까?
id primary key, auto increment
user_id unique
count default 0
.
try:
cursor.execute("INSERT INTO user_count (user_id) VALUES (%s)", user.id)
except IntegrityError:
cursor.execute("UPDATE user_count SET count = count+1 WHERE user_id = %s", user.id)
그리고 그것은 또한이 방법으로 구현 될 수있다 :
cursor.execute("INSERT INTO user_count (user_id) VALUES (user_id) ON DUPLICATE KEY UPDATE count = count + 1", user.id)
이 두 가지 방법의 차이를 무엇을, 한 현재
, 나는 그 (파이썬에서) 이런 식으로 할 더 나은?
+1 - 예외에 대한 예외를 남겨 둡니다. 그리고 im은 데이터베이스가 애플리케이션 코드에 여분의 조건문을 추가하기보다 자신이 잘하는 일을하도록 해줍니다. –