DB/MYSQL

쿼리실행 후 영향받은 쿼리 수 구하기

MAKGA 2021. 11. 5. 23:48
320x100

보통 쿼리를 돌리면 영향받은 로우 수라고 해서 Affected Rows를 구할 필요가 있어진다.

MYSQL에서는 실제로 데이터가 변경된 수만 반영되며, 데이터가 변화가 없는 경우엔 0건으로 보여진다.

 

Query

SELECT ROW_COUNT();

C API

mysql_affected_rows();

 

업무 중에서 캐릭터 데이터를 insert 해주고 성공했을 경우(affected row > 0) 나머지 데이터들을 추가로 넣어주려고 했는데 데이터가 추가됐음에도 불구하고 row가 계속 0으로 나왔다. 트랜잭션이나 쿼리가 섞여 있는게 아니였는데도 말이다.

https://stackoverflow.com/questions/14437539/how-to-use-row-count-with-transaction 

 

how to use row_count() with transAction?

i have an stored procedure in mysql like below: BEGIN START TRANSACTION; INSERT INTO tbl1 (v1,v2) VALUES (p1,p2); UPDATE tbl2 SET s1 = 1 WHERE s2 = s3; SELECT ROW_COUNT(); COMMIT END...

stackoverflow.com

 

일단 기능 자체의 완성이 필요해서 SELECT으로 다시 확인하는 방법으로 바꿔놓긴 했지만 뭔가 아쉽다.

차후 최적화할 때 다시 한번 찾아봐야겠다.

320x100