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

+ Recent posts