">

  ALTER TABLE은 테이블의 스키마를 변경할 수 있도록 해주는 유용한 명령어입니다. 테이블 스키마란 쉽게 말하면 테이블의 구조라고 설명 드릴 수 있겠네요. 이 스키마라는 것은 논리적 스키마와 물리적 스키마로 분리해서 부릅니다. 데이터베이스 설명 페이지는 아니니 설명은 이쯤에서 마무리 할게요.


  좀 예전에는 각 데이터베이스 회사마다 사용되는 쿼리가 많이 달랐습니다. 하지만 표준화를 진행하면서 많이 비슷해 졌어요. ALTER TABLE 도 크게 다른 부분 없습니다. 


1. 테이블에 새로운 컬럼 추가하기

형식은 ALTER TABLE [테이블명] ADD COLUMN [추가할 컬럼명][추가할 컬럼 데이터형] 입니다.

mysql>ALTER TABLE user_info ADD COLUMN name varchar(20) not null;



2. 테이블 컬럼 타입 변경하기

형식은 ALTER TABLE [테이블명] MODIFY COLUMN [변경할 컬럼명][변경할 컬럼 타입] 입니다.

mysql>ALTER TABLE user_info MODIFY COLUMN name varchar(10) not null



3. 테이블 컬럼 이름 변경하기

형식은 ALTER TABLE [테이블명] CHANGE COLUMN [기존 컬럼 명][변경할 컬럼 명][변경할 컬럼 타입] 입니다.

mysql>ALTER TABLE user_info CHANGE COLUMN name nickname varchar(20) not null;



4. 테이블 컬럼 삭제하기

형식은 ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼 명] 입니다.

mysql>ALTER TABLE user_info DROP COLUMN nickname;



5. 테이블 컬럼에 인덱스 설정하기

형식은 ALTER TABLE [테이블명] ADD INDEX 인덱스명(인덱스 설정할 컬럼1, 인덱스 설정할 컬럼2, ...) 입니다.

mysql>ALTER TABLE user_info ADD INDEX userindex(id);



6. 설정된 인덱스 삭제하기

형식은 ALTER TABLE [테이블명] DROP INDEX [인덱스명] 입니다.

mysql>ALTER TABLE user_info DROP INDEX userindex;


인덱스가 잘 제거 되었는지 확인하시려면,

mysql>SHOW INDEX FROM user_info;


이렇게 확인이 가능합니다. 



7. Primary Key 설정하기

형식은 ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정할 컬럼 명1, Key 설정할 컬럼 명 2, ...) 입니다.

mysql> ALTER TABLE user_info ADD PRIMARY KEY (id, nickname);



8. Primary Key 삭제하기

형식은 ALTER TABLE [테이블명] DROP PRIMARY KEY 입니다.

mysql> ALTER TABLE user_info DROP PRIMARY KEY;



9. 테이블 이름 바꾸기

형식은 ALTER TABLE [원본 테이블] RENAME [새로운 테이블 이름] 입니다.

mysql> ALTER TABLE user_info RENAME vip_user_info;

아래의 설명은 GCM 등록과 관련된 코드에 문제가 없다는 전제하에 설명한 글입니다.


GCM을 구현 한 것에서 모든 문제가 없는데, 디버깅을 보니 아래와 같이 딱! 하니 에러코드가 나온다면 한번 의심해 봐야할 것이 있습니다.



사용자가 App을 설치하고 실행할 때 '백그라운드 데이터 제한' 설정을 해 놓았다면, 혹은 'Google Play 서비스' 항목에 해당해 '백그라운드 데이터 제한'을 했다면 그리고 사용하는 PUSH Service가  GCM 하나 밖에 없다면 저런 에러 메시지를 볼 수 있습니다.

문제를 해결할 수 있는 방법은 '백그라운드 데이터 제한'을 풀거나, GCM 이외의 Push Server를 두고 catch 문 안에 두 번째 Push Server로부터 Push Key를 가져오게 하는 방법 외엔 없습니다.


아래 그림은 '백그라운드 데이터 제한' 설정과 관련된 이미지입니다. 아래 그림에서 제한 설정을 끄면 GCM 서비스를 정상적으로 사용할 수 있습니다. 그리고 이 문제는 앱을 처음 설치할 시에만 발생합니다. 



+ Recent posts