2011-09-04 6 views
2

지금 당장 데이터베이스를 설정하여 새 행을 삽입합니다. 그러나 삽입하려는 행이 중복 된 경우 (내 기본 키 id을 기준으로) 카운트 필드를 1 씩 증가시킵니다.mysql의 필드/행이 성공적으로 업데이트 된시기를 어떻게 알 수 있습니까?

지금 당장 새 항목을 만들 수 있었는지 알고 싶습니다. 행을 증가시킬 필요가 없습니다. 어떻게하면 효율적이고 적절한 방식으로이 작업을 수행 할 수 있습니까?

내가 생각하는 현재 방법은 id을 먼저 쿼리하고 존재하는지 확인하는 것입니다. 하지만 더 빠르고 좋은 방법이있는 것처럼 느껴집니다. 나는 또한 방아쇠에 관해 읽었지 만, 나는 그들이 나쁜/위험한 사용하는 것을 들었다.

+0

데이터베이스 설정 샘플을 많이 도와주세요 – kritya

+1

분명한 사실을 알릴 위험이 있다면 그냥 PHP를 사용하십시오 (mysql_query ...), returnint는 삽입에 성공하면 true이고 그렇지 않으면 false가됩니다. – Psyrus

답변

2

사용 INSERT ... ON DUPLICATE KEY UPDATE... 그런 다음 affected_rows 쿼리. 행이 삽입되면 MySQL은 1을 반환하고 기존 행이 업데이트 된 경우 2를 반환합니다.

+0

감사합니다. =) – Vadoff

0

어떻게 id 컬럼에 auto_increment 어떻습니까?

그렇지 않은 경우 SELECT MAX(id) FROM TABLE을 사용하여 가장 높은 ID를 찾아서 추가 할 수 있지만 다른 사용자가 동일한 삽입을 동시에 실행할 수 있으므로 스레드로부터 안전하지 않습니다. Auto_increment가 자동 수정합니다.

관련 문제