테이블명, 제약조건, 컬럼명 변경하기
본문 바로가기
IT. 컴퓨터

테이블명, 제약조건, 컬럼명 변경하기

by 솔기잇 2020. 4. 19.

## 테이블명, 제약조건, 컬럼명 변경하기 ##

 

 

 

<< 테이블 생성 >>

CREATE TABLE TBL_PRODUCT

(PDCODE     VARCHAR2(10)

,PDNAME     VARCHAR2(10)

,DANGA       NUMBER

,CONSTRAINT TBL_PRODUCT_PDCODE_PK

                    PRIMARY KEY(PDCODE)

);

 

<< 테이블 생성 >>

CREATE TABLE TBL_PANAME

(PDCODE     VARCHAR2(10)

,PANDAY      DATE DEFAULT SYSDATE

,PANSU        NUMBER

,CONSTRAINT TBL_PANAME_PDCODE_FK

                    FOREIGN KEY(PDCODE)

                    REFERENCES TBL_PRODUCT(PDCODE)

                    ON DELETE CASCADE

);

 

 

-- 테이블명 변경하기

RENAME TBL_PANAME TO TBL_PANMAE;

 

 

--제약조건의 이름 변경

ALTER TABLE TBL_PANMAE

RENAME CONSTRAINT TBL_PANAME_PDCODE_FK TO

                  TBL_PANMAE_PDCODE_FK;

 

 

-- 컬럼명 변경하기

ALTER TABLE TBL_PRODUCT

RENAME COLUMN DANGA TO PRICE;                 

 

-- 데이터 넣기

INSERT INTO TBL_PRODUCT VALUES

('SEK', '새우깡', 1000);

INSERT INTO TBL_PRODUCT VALUES

('KJK', '감자깡', 1500);

INSERT INTO TBL_PRODUCT VALUES

('YPR', '양파링', 2000);

 

-- 데이터 넣기

INSERT INTO TBL_PANMAE(PDCODE,PANSU)

VALUES('SEK', 20);

INSERT INTO TBL_PANMAE(PDCODE,PANSU)

VALUES('KJK', 30);

INSERT INTO TBL_PANMAE(PDCODE,PANSU)

VALUES('SEK', 50);

INSERT INTO TBL_PANMAE(PDCODE,PANSU)

VALUES('SEK', 10);

INSERT INTO TBL_PANMAE(PDCODE,PANSU)

VALUES('SEK', 10);

--ORA-02291: 무결성 제약조건(NEWSCOTT.TBL_PANMAE_PDCODE_FK) 위배되었습니다-

 

COMMIT;

 

--조회

SELECT *

FROM TBL_PRODUCT;

 

SELECT *

FROM TBL_PANMAE;

 

 

--지우기

DELETE TBL_PRODUCT

WHERE PDCODE ='YPR';

 

--지울 주의 사항

DELETE TBL_PRODUCT

WHERE PDCODE ='SWK'; 

-- 1: 관계에서는 새우깡의 판매기록이 없으면 안되니까 안된다.

  그래서 다른 방법으로 한다.

-- ON DELETE CASCADE 주게 되면 판매기록도 없어진다.

                     

ROLLBACK;

--그래서 딜리트를 하지 않고 스테이터스를 만들어서 Y 라하면 판매되어진

-- 품목으로, N 하면 판매되어지지 않은 품목으로 하면 된다.

-- 그런데 딜리트를 하고 싶은다면, 트리거를  취급하지 않는 테이블에

-- 옮기고 나서 지운다.

-- 그래서 컬럼을 만드는 것이다.


close