• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 1. 데이터 형식 요약
    2. 수치형
    3. 날짜와 시간 형
    4. 문자열
    5. 공간 데이터의 확장
    6. 데이터 형 기본값
    7. 데이터 유형의 스토리지 요구 사항
    8. 컬럼에 적절한 형태의 선택
    9. 기타 데이터베이스 엔진의 데이터 형식 사용
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

11.6 데이터 형 기본값

데이터 형 사양의 DEFAULT value 절은 컬럼의 기본값을 보여줍니다. 한 가지 예외가 있습니다. 기본값은 상수 여야가 있으므로, 함수 또는 식을 수 없습니다. 이것은 예를 들어 날짜 컬럼의 기본값으로 NOW() 이나 CURRENT_DATE 등의 함수 값을 설정할 수 없다는 것을 의미합니다. 예외는 CURRENT_TIMESTAMP 를 TIMESTAMP 및 DATETIME 컬럼의 기본값으로 지정할 수 있습니다. 섹션 11.3.5 "TIMESTAMP 및 DATETIME 자동 초기화 및 업데이트 기능" 을 참조하십시오.

BLOB 및 TEXT 컬럼에 기본값을 할당 할 수 없습니다.

컬럼 정의에 명시적인 DEFAULT 값이 포함되어 있지 않은 경우, MySQL은 디폴트 값을 다음과 같이 확인합니다.

NULL 을 값으로 취할 수있는 경우, 그 컬럼은 명시적인 DEFAULT NULL 절에서 정의 할 수 있습니다.

NULL 을 값으로 취할 수없는 경우, MySQL은 명시적인 DEFAULT 절에서 컬럼을 정의 할 수 없습니다. 예외 : 컬럼이 PRIMARY KEY 의 일부로 정의되어 있지만 NOT NULL 로 명시 적으로 정의되어 있지 않은 경우, MySQL은 이것을 NOT NULL 컬럼으로 만듭니다 ( PRIMARY KEY 컬럼은 NOT NULL 이어야 이 있으므로)가 암시 적 기본값을 사용하여 이에 DEFAULT 절을 지정합니다. 이를 방지하려면 모든 PRIMARY KEY 컬럼의 정의에 명시 적으로 NOT NULL 을 포함해야합니다.

명시적인 DEFAULT 구가없는 NOT NULL 컬럼에 대한 데이터 항목은 INSERT 또는 REPLACE 문을 열 값을 포함하지 않은 경우 또는 UPDATE 문이 열을 NULL 로 설정하면, MySQL은 그 시점에서 유효한 SQL 모드에 따라 열을 처리합니다.

  • 엄격한 SQL 모드를 활성화하면 트랜잭션 테이블에 오류가 발생하고 문이 롤백됩니다. 비 트랜잭션 테이블에서 오류가 발생할 이것이 여러 줄 문 2 행째 이후의 행에 대한 오류의 경우, 선행하는 행이 삽입되어 있습니다.

  • 엄격 모드가 유효하지 않은 경우, MySQL은 컬럼 데이터 유형의 암시 적 기본값으로 컬럼을 설정합니다.

테이블 t 가 다음과 같이 정의된다고합니다.

 CREATE TABLE t (i INT NOT NULL);

이 경우 i 는 명시적인 기본이 없기 때문에 엄격 모드에서는 다음의 각각은 문은 오류가 발생 행은 삽입되지 않습니다. 엄격 모드를 사용하지 않는 경우, 세 번째 문에서만 오류가 발생합니다. 처음 두 개의 문은 암시 적 기본이 삽입되지만, DEFAULT(i) 값을 생성 할 수 없기 때문에 세 번째 문은 실패합니다.

 INSERT INTO t VALUES ();
 INSERT INTO t VALUES (DEFAULT);
 INSERT INTO t VALUES (DEFAULT (i));

섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.

소정의 테이블에 대한 SHOW CREATE TABLE 문을 사용하면 어느 컬럼에 명시적인 DEFAULT 절이 있는지를 확인할 수 있습니다.

암시 적 기본값은 다음과 같이 정의됩니다.

  • 수치 형의 기본값은 0 입니다. 그러나 예외로 AUTO_INCREMENT 속성에서 선언 된 정수 또는 부동 소수점 형의 기본은 그 시퀀스의 다음 값이됩니다.

  • TIMESTAMP 이외의 날짜 및 시간 형의 기본은 '제로'값이 적절합니다. explicit_defaults_for_timestamp 시스템 변수가 유효한 경우 이것은 TIMESTAMP 에도 적용됩니다 ( 섹션 5.1.4 "서버 시스템 변수" 를 참조하십시오). 그렇지 않으면 테이블의 첫 번째 TIMESTAMP 컬럼의 기본값은 현재 날짜와 시간입니다. 11.3 절 "날짜 및 시간 형식" 을 참조하십시오.

  • ENUM 이 아닌 문자열 기본값은 빈 문자열입니다. ENUM 의 기본은 먼저 열거입니다.

정수 컬럼 정의에서 SERIAL DEFAULT VALUE 는 NOT NULL AUTO_INCREMENT UNIQUE 별칭입니다.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved