해당 테이블에서 컬럼을 확인해서 없을경우 컬럼을 추가해주는 쿼리를 만들려고 하는데
IF NOT EXISTS 의 사용방법을 잘 몰라서 자꾸 에러가 나네요
다른 사이트에서 올려준 쿼리로 테스트를 해봣음에도 안되서 미칠 노릇이네요;
IF NOT EXISTS
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='TB_TRACKER' AND COLUMN_NAME='GPS_ACCURACY')
ALTER TABLE TB_TRACKER ADD GPS_ACCURACY INT NOT NULL CONSTRAINT DF_TB_TRACKER_GPS_ACCURACY DEFAULT (0) GO
이 쿼리가 다른 사이트에서 올려져있던 쿼리인데 인포 스키마에서 테이블 확인하고 그에 해당하는 컬럼을 SELECT 하는것도 해보고 ALTER 문도 처리가 되는걸 확인해서
IF NOT EXISTS 를 사용할려 했는데.. 전혀 사용법을 모르겠네요.
[1차 수정 내역입니다.]
IF NOT EXISTS (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='test' AND COLUMN_NAME='eee')
THEN
ALTER TABLE `test` ADD `eee` int(1) NOT NULL default '0'
END IF;
이렇게 했는데 에러메시지가
check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='test' ' at line 1
이렇게 뜨네요..; 버전이 앉맞는건가요 ?
Version : 5.0.37-log
위에 꺼 쓰고있는데..
우선 조치로 @ 를 써서 그냥 alter 시키게 해두긴 했는데... 고수님들 부탁드려요 ㅠ_ㅠ왜 안되는지 알고싶어요.. 조건식에서 에러가 생겨요 ...
그런데 SELECT * FROM TABLE WHERE NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='TB_TRACKER' AND COLUMN_NAME='GPS_ACCURACY') 를 하면 또 잘 나와요.. |