Error 1093 (ER_UPDATE_TABLE_USED)
SQLSTATE = HY000
Message = "You can't specify target table 'x'
for update in FROM clause"
이 에러는 다음과 같은 경우에 발생 한다.
UPDATE t1 SET column2 = (SELECT MAX(column1) FROM t1);
여러분은 UPDATE문 내에서 할당을 위한 서브쿼리를 사용할 수 있는데 그 서브쿼리들은 SELECT문 뿐만 아니라 UPDATE와 DELETE문들 내에서 적합하기 때문이다. 그러나 서브쿼리의 FROM절과 업데이트 target모두를 위해 같은 테이블을 사용할 수 없다.
정리 : 동일한 테이블을 update하고 select하는건 위반이다!! 스토어드 프로시저를 이용해야 할것 같다.
'Databases > MYSQL' 카테고리의 다른 글
mysql - Replication 정의 (0) | 2012.01.16 |
---|---|
mysql - 덤프하기 (mysqldump) (0) | 2011.10.07 |
mysql - telnet으로 사용하기 (0) | 2011.08.24 |
mysql - 날짜와 관련된 함수 정보 정리 (0) | 2011.08.24 |
mysql - 지원되는 최대 컬럼수 (0) | 2011.08.24 |