[SQLite] DB생성후 나중에 Primary Key ADD 하기

안녕하세요.
SQLite Tip하나 공유합니다.

SQLite는 아래와 같은 명령을 지원하지 않죠!
ALTER TABLE [Table]
  ADD CONSTRAINT Table_PK PRIMARY KEY ( COL, ... )

SQLite는 데이터만 먼저 생성한후 나중에 Primary Key를 추가하는 명령이 없습니다.
이런 경우는 아래처럼 Transaction을 이용해서 Rename을 한후에 생성해주는 방식이 있습니다.

ex) 예시 

--> 먼저 Rename을 실행하는 부분입니다.
BEGIN TRANSACTION;
alter table MasterF1 RENAME TO old_MasterF1;

--> 동일한 새 테이블을 생성합니다.
CREATE TABLE [MasterF1]
(
   [Observatory]  VARCHAR(60)  NOT NULL ,
   [Item]  VARCHAR(20)  NOT NULL ,
   [BaseDate]  VARCHAR(10)  NOT NULL ,
   [Value]  REAL NULL ,
   [Descr]  VARCHAR(100)  NULL ,
   [OrderSeq]  INT NULL
   , PRIMARY KEY ( [Observatory],[Item],[BaseDate] )
);

--> 기존 데이터를 새 테이블에 채웁니다.
INSERT INTO MasterF1 SELECT * FROM old_MasterF1;

--> 기존 테이블을 삭제합니다.
DROP TABLE old_MasterF1;

COMMIT;

위 스크립트를 참조하시면 다른 더 좋은 방법으로도 가능하실겁니다.
좋은 하루 되세요.


홈페이지: http://www.wooribnc.com
모든 프로그램개발 의뢰 가능합니다.

댓글

이 블로그의 인기 게시물

[구매팁] SQL SERVER 구매, 라이선스 구입은 어떻게 할까요?

[솔직 후기] 제네시스 마스터 해머링 6과 아크7 색소폰 후기와 소감

[DevExpress] xtraReport를 PDF로 변환시 '동일한 키를 사용하는 항목이 이미 추가되었습니다.' 해결방법!