alter table 테이블명
add( 컬럼스펙 || 제약스펙);
alter table 테이블명
modify( 컬럼스펙 || 제약스펙);
컬럼스펙 : 컬럼명 테이터타입 ( not null/ null or unique or check )
제약스펙 : constraint 제약조건명 primary key (칼럼명1, 칼럼명2, ...)
constraint 제약조건명 foreign key (칼럼명1, 칼럼명2, ...)
references 참조테이블명 (컬럼명1, 칼럼명2, ...)
//기본키 제약조건 삭제
alter table 테이블명
drop primary key; //primary key(컬럼) 명시적 지정 삭제가능
//기타 제약조건 삭제
alter table 테이블명
drop constraints SYS_C0015273 <- 제약조건 이름
//컬럼삭제
alter table 테이블명
drop column 칼럼명;
//테이블명 변경
alter table 테이블명
rename to 변경테이블 명;
주의 사항1
add 시 동시에 칼럼을 주고 제약조건을 걸수있을거 같지만 안된다..
예를들면
create 문에서
create table job(
job_money varchar2(10) not null
constraint job_job_money check(job_money in ('10000','20000'))
); //가능
alter table job
add (job_money2 varchar2(20) null check( job_money in ('1000000','2000000')));//불가
가능 하게 하려면..
alter table job
add (job_money2 varchar2(20) null)
modify (constraint job_money2_check check( job_money2 in ('1000000','2000000')));
이렇게 해줘야 가능
add 랑 modify 키워드를 같이 써야한다.
주의 사항2
컬럼에 지정한 제약조건이 여러가지 일 경우 모든 제약조건에 만족해야만 데이터 입력이 가능하다.
주의 사항3
제약조건을 변경시
제약조건 이름을 통한 modify 는 문법오류를 발생한다.
create table job(
job_money varchar2(10) not null
constraint job_job_money check(job_money in ('10000','20000'))
);
테이블 생성후
job_job_money 이름의 제약조건에 내용을 변경하는건 될거 같지만 불가능 하다.
alter table job
modify( constriant job_job_money check(job_money in ('10','20'))); //오류
그럼 결국 제약조건을 삭제하고 다시 걸어줘야함
alter table job
drop constraint 제약조건명;
간단한 내용이지만 문법을 다 외우는 방법보단 내부적 개념을 살펴보고 작성할수 있게끔 정리를 해보았다.
피드 구독하기:
댓글 (Atom)
[lunux]리눅스 폴더별 용량 확인
리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId&g...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
자바에서 redis 를 사용할때는 jedis 라는 wrapping api 를 사용 하는데 기본 사용법은 메이븐에 아래 의존 라이브러리를 추가하고 <dependency> <groupId>redis.clients</g...
댓글 없음:
댓글 쓰기