2012-07-17 4 views
0

MySQL을,이 실행되지 않습니다MySQL을 선택 리팩토링

delete from robottinosino where date = (select max(date) from robottinosino); 

오류 메시지 :

ERROR 1093 (HY000) : 당신은 갱신에 대한 목표 테이블 'robottinosino'를 지정할 수 없습니다 FROM 절

질문 :

  • 일까요? ("이유"에 중점을 두어 Q가 "중복"으로 잘못 표시되지 않음)
  • 문제를 해결하는 방법은 무엇입니까?
+2

http://stackoverflow.com/questions/4562787/how-to-delete-from-select-in-mysql – ethrbunny

+0

http://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-update-in-clause 절, http://stackoverflow.com/questions/4471277/mysql-delete-from-with-subquery-as -조건 –

답변

5

MySQL에서는 사용자가 선택한 테이블에서 삭제할 수 없습니다. 대부분의 경우 경쟁 조건입니다. 쿼리의 선택 부분에서 쿼리를 검색하기 전에 테이블에서 레코드를 삭제할 수 있습니다.

이 경주에 위험이 없으므로 쿼리를 허용해야하지만 MySQL은이를 파악하기에 현명하지 않습니다.

여기에 해결 방법이있어 : MySQL Error 1093 - Can't specify target table for update in FROM clause