오라클 sql 기본키 고유키 질문입니다.
-
게시물 수정 , 삭제는 로그인 필요
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20201106_157/1604667797119cSKHV_PNG/%C4%B8%C3%B3.PNG)
보시다시피 멤버테이블에 제약 조건을 id<pk> , login<uq>로 생성을 해보았는데요
pk는 테이블 제약조건에서 확인이 가능 하나 인덱스에서는 확인이 불가능하고
uq는 인덱스에서 확인이 가능하나 제약조건에서는 확인이 불가능합니다..
이상하게도 기능은 제대로 구현이 되는데 왜 그러는걸까요??
login <uq>를 참조해 order 테이블 외래키를 작성하려고 보니 이렇게 되서 안되는거 같더라구요...
no matching pk uq라고 오류 메세지가 떻었습니다.
어떻게 해결해야할까요... 기존 데이터 때문에 어떻게 하지를 못하겠네요 설마 사라질까봐 ㅠㅠ
밑에는 생성후 sql을 그대로 복사해온거입니다.
CREATE TABLE "STARBUCKS"."MEMBERS"
( "ID" NUMBER NOT NULL ENABLE,
"LOGIN" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"PW" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"NAME" VARCHAR2(20 BYTE) NOT NULL ENABLE,
"GENDER" NUMBER DEFAULT 1 NOT NULL ENABLE,
"BIRTH" VARCHAR2(50 BYTE),
"PHONE" VARCHAR2(50 BYTE),
"EMAIL" VARCHAR2(30 BYTE),
CONSTRAINT "MEMBERS_PK" PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."ID" IS '회원번호';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."LOGIN" IS '아이디';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."PW" IS '비밀번호';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."NAME" IS '이름
';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."GENDER" IS '성별';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."BIRTH" IS '생년월일';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."PHONE" IS '핸드폰번호';
COMMENT ON COLUMN "STARBUCKS"."MEMBERS"."EMAIL" IS '이메일';
CREATE UNIQUE INDEX "STARBUCKS"."UQ_MEMBERS_LOGIN" ON "STARBUCKS"."MEMBERS" ("LOGIN")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
uq는 인덱스에서 확인이 가능하나 제약조건에서는 확인이 불가능합니다..
#오라클 sql #오라클 sqlplus 접속 #오라클 sql if문 #오라클 sql 문법 #오라클 sql developer 사용법 #오라클 sql developer 설치 #오라클 sqlplus 설치 #오라클 sql rowcount #오라클 sql limit #오라클 sql developer 접속 오류