row_count()를 사용하여 감지할 수 있습니다. row_count()가 1을 반환하면 새 레코드임을 의미합니다. 2를 반환하면 쿼리와 함께 ON UPDATE 이벤트가 발생한다는 의미입니다. 다음은 구문입니다 -
select row_count();
먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable1512 -> ( -> Value int , -> UNIQUE(Value) -> ); Query OK, 0 rows affected (0.60 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10; Query OK, 1 row affected (0.09 sec)
이제 위 쿼리의 도움으로 on update 이벤트가 발생했는지 확인할 수 있습니다 -
mysql> select row_count();
이것은 다음과 같은 출력을 생성합니다 -
+-------------+ | row_count() | +-------------+ | 1 | +-------------+ 1 row in set (0.00 sec)
아니오를 의미하는 1을 반환합니다.
이제 삽입 명령을 사용하여 테이블에 동일한 레코드를 다시 삽입할 수 있습니다 -
mysql> insert into DemoTable1512 values(90) on duplicate key update Value=Value+10; Query OK, 2 rows affected (0.12 sec)
이제 위 쿼리의 도움으로 on update 이벤트가 발생했는지 확인할 수 있습니다 -
mysql> select row_count();
이것은 다음과 같은 출력을 생성합니다 -
+-------------+ | row_count() | +-------------+ | 2 | +-------------+ 1 row in set (0.00 sec)