2016-09-28 9 views
5
ALTER TABLE user DROP COLUMN registered_date 

위의 명령을 사용하여 열을 삭제할 수 있습니다. 하지만 어떻게 열을 등록 된 날짜가 존재하는 경우에만 삭제할 수 있습니까?mysql에 컬럼이있는 경우 드롭하는 방법은 무엇입니까?

+0

방법이있다처럼은 보이지 않지만, 최악의 경우 당신은 당신이 당신의 응용 프로그램 계층에서 처리 할 수있는 오류가 발생하는 것입니다. –

+0

그것은 다음과 같이 보일 것입니다. ALTER TABLE 사용자 DROP COLUMN IF EXISTS registered_date; –

+0

@DeepakJoshi 구문 오류가 발생합니다 : "예기치 않은 경우". – CloudSeph

답변

-1
IF EXISTS(SELECT * 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name') 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 

또는

IF (SELECT COUNT(*) 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name'>0) 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 
+0

'이 위치에 입력이 유효하지 않은 경우'구문 오류가 나타납니다. 위의 경우 – CloudSeph

+0

@IvanCloud를 따르는 경우 해당 명령문 콤보는 저장된 프로 시저처럼 사용할 수 있습니다 – Drew

+0

if 근처에서 잘못된 구문이 작동하지 않습니다 – Clintm