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)
[oracle]백업및 복구
[oracle]백업및 복구 오라클 덤프 백업및 복구 윈도우 서버 기반 간단 정리 --디렉터리 조회 sqlplus 또는 dbtool 입력시작 SELECT * FROM DBA_DIRECTORIES ; --D:...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...
-
notice_state 란 이름의 체크박스가 있다 가정하고 $("input[name=notice_state]").bind("click",false); 끝.
댓글 없음:
댓글 쓰기