2013-07-12 4 views
0

1 행에 영향을주는 update 문을 실행합니다. 그런 다음 select row_count()를 작성하면 결과는 항상 -1입니다.왜 업데이트 후 mysql row_count가 항상 -1입니까?

나는 mysql에서 row_count을 체크 아웃했다. 그러나 나는 mysql에서 row_count()를 설정하기 위해 무엇을 설정해야하는지 이해하지 못한다.

아무도 도와 줄 수 있습니까?

같은 것을 삽입 할 때도 같은 것을 사용합니다. tb_fr_itemsderendicionfondorotatorio (VERSION, 에스타, ejercicio, IMPORTE 데마 oidObjeto, tipoObjeto, codigoObjeto, oid_Ren dicionFondoRotatorio, oid_AnulacionRendicionFondoRotatorio, fecha) VALUES (0,1,0,3000 '산'18679 'AnticipoRendicion INTO

INSERT ','2013000005 ', 4979, NULL,'2013-05-25 ');

SELECT ROW_COUNT();

SQLYog 인터페이스에서 테스트를 만들고 항상 -1을 반환합니다. 서버 Im에서 Java로 최대 절전 모드를 사용합니다.

+0

업데이트 시간과'row_count()'호출 사이에 어떤 선택을하고 있습니까? –

+0

사용중인 MySQL 버전은 무엇입니까? – raina77ow

+0

아니요, 저는 선택하지 않았습니다. 내 버전은 5.5.32 –

답변

0

가장 적합한 설명은 "SELECT ROW_COUNT()"쿼리가 동일한 데이터베이스 연결에서 INSERT, UPDATE 또는 DELETE 문으로 바로 앞에 오지 않는다는 것입니다.

이 함수는 동일한 데이터베이스 세션에서만 의미가 있습니다. 쿼리가 다른 연결에서 실행 중이면 -1을 반환 할 것으로 기대합니다. 실행중인 다른 명령문 (예 : COMMIT 문)이 있으면 -1을 리턴 할 것으로 기대합니다.

mysql 명령 줄에서 실행하고 있습니까? 아니면 다른 인터페이스? (또 다른 인터페이스의 경우, 나는 COMMIT를 실행되거나 연결을 휘젓고 생각한다.)


후속 :

난 당신이 MySQL의 명령 줄을 사용하여이 같은 테스트 케이스를 시도 제안 클라이언트, 그리고 당신이 그걸로 얻을 결과를 참조하십시오. 또한 Java 응용 프로그램에서 동일한 작업을 수행하여 사용자가 얻은 것을 확인할 수 있습니다.

이 문제는 MySQL 자체의 문제가 아니라 SQLyog 관련 문제로 의심됩니다. 그러나 다른 클라이언트의 일부 테스트 케이스가이를 확인하는 데 도움이됩니다.

SQLYog GUI v10.2 및 MySQL 버전 '5.1.46-community'를 사용하여 테스트를 실행했으며 ROW_COUNT()가 예상 값을 반환합니다.

+0

을 삽입 할 때와 동일합니다. 아마도 자동 커밋이 사용됩니다. 그것을 확인하려고합니다. –

+0

sqlyog 인터페이스에서 실행 중입니다.나는 새로운 연결을 열어서 INSERT INTO를 작성한다. (삽입, 삽입, 삽입, 삽입, 삽입, 삽입, 삽입, 삽입, 삽입) VALUES (0,1,0,3000, 'mt', 18679, 'AnticipoRendicion', '2013000005', 4979, NULL, '2013-05-25'); SELECT ROW_COUNT(); 또한 업데이트로 조사하고 항상 -1을 반환합니다 –

0

업데이트 쿼리가 실행 된 직후에 mysql_affected_rows()를 사용하여 영향을받은 행 수를 얻을 수 있습니다. -1은 구문 오류 또는 데이터베이스 연결 오류로 인해 쿼리가 실패했다는 것을 보여줍니다.

+0

mysql_affected_rows()는 PHP 용 함수입니까? 자바 최대 절전 모드를 사용하고 있습니다. 현재 sqlYog 인터페이스에서 오류가 발생했습니다. –