database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30656 게시물 읽기
No. 30656
컬럼 유무 확인하고 없으면 입력시키는 쿼리좀..
작성자
원재호(angelgate)
작성일
2013-11-05 14:36ⓒ
2013-11-05 15:30ⓜ
조회수
9,183

해당 테이블에서 컬럼을 확인해서 없을경우 컬럼을 추가해주는 쿼리를 만들려고 하는데

 

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')  를 하면 또 잘 나와요..

[Top]
No.
제목
작성자
작성일
조회
30659쿼리문의 드립니다. [2]
김진호
2013-11-11
8974
30658NDB cluster의 foreign key 관련 질문입니다. [2]
김상철
2013-11-08
9244
30657MYISAM과 INNODB 혼용시 여쭙니다. [1]
모바일맨
2013-11-05
9425
30656컬럼 유무 확인하고 없으면 입력시키는 쿼리좀..
원재호
2013-11-05
9183
30655mysql 에러 확인좀 [3]
김하림
2013-11-05
10084
30654JSP 프로그램 실행중 이러한 DB Error가 발생했습니다.
DB 초보
2013-10-29
9404
30653mysql ERROR 3 (Errcode: 28) [1]
주진희
2013-10-29
13853
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다