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


 테이블 단위 백업

 

 mysqldump -u[계정] -p[비번] -h192.0.0.1 -a -c -q -Q -e [DB명] [테이블명] > [파일명].sql


 테이블 단위 복원

 

 mysql -u[계정] -p[비번] -h192.0.0.1 [DB명] [테이블명] < [파일명].sql


 DB 단위 백업


 mysqldump -u[계정] -p[비번] [DB명] > [파일명].sql


 DB 단위 


 mysql -u[계정] -p[비번] [DB명] < [파일명].sql




'OS > LINUX' 카테고리의 다른 글

Linux - RAID란?  (0) 2011.11.01
Linux - 시간 변경 명령어  (0) 2011.10.21
리눅스 명령어 모음 (개인 자주 사용 모음)  (0) 2011.08.30
리눅스에서 쉘스크립트 참고 사이트  (0) 2011.08.24
Linux - CRONTAB 사용법  (0) 2011.08.24

+ Recent posts