2014-06-11 6 views
1

books라는 이름의 테이블을 만들고 'color'라는 제목의 열이 있습니다. 처음에는 'color'열에 null 값이 있습니다. 나는 다음과 같은 쿼리를 실행할 때 이제 :oracle의 기존 테이블에 기본값이있는 열을 추가하십시오.

alter table books modify color default 'blue'; 

스키마가 형성되어 있지만 책 SELECT * FROM 일을, 열 색상의 모든 값은 여전히 ​​null입니다. 어떤 정확한 쿼리가 실행됩니까? 물론 http://sqlfiddle.com/#!4/f4210/1

답변

4

: 여기

는 링크입니다. 변경 테이블은 단지 테이블 구조를 변경하지만 내용은 변경하지 않습니다. 새 항목이 기본값을 갖습니다.

기존의 값이 같은 SQL 업데이트 쿼리를 실행하여 업데이트하려면 :

업데이트 책 색상을 설정을 = COLORE가 null의 경우 '블루';

0

alter은 다음 값을 삽입해도 괜찮습니다. color 열에 값을 지정하지 않고 행을 삽입하려고하면 값은 파란색이어야합니다.

그러나 이것은 그냥 업데이 트를 필요로하는 기존의 값에 대해 작동하지 않습니다

update books set color = 'blue'; 
2

을 당신이 지금 만 기본값으로 올 것이다 테이블에 삽입합니다. 이 문은이 표의 이전 내용을 알지 못합니다. 비 기술적 인 언어로, 당신은 신탁에 지금 그렇게하도록 말하고 있습니다. 이 문은 이전 값에 대한 검사를 수행하지 않습니다.

관련 문제