본문 바로가기
MySql

MySQL 테이블 생성시 SQL 정수 범위

by 베이스 공부 2021. 1. 4.
반응형

내 create 문 중 하나에 가능한 값 범위, 즉 INT를 제공하려고합니다.

범위에 사용하는 구문을 잊어 버리고있는 그대로 사용하려고 할 때 오류가 발생한다고 확신합니다.

 

해결 방법

 

저자 주 :이 답변의 처음 두 부분은 정확하지 않습니다. MySQL이 CHECK 제약 조건을 지원한다고 생각했지만 그렇지 않았습니다. 여전히 그렇지 않습니다. 열을 단순한 값 목록으로 제한하려면이 답변 끝에 ENUM 접근 방식을 사용하십시오. 논리가 더 복잡한 경우 (값 범위, 다른 열에 기반한 값 등) MySQL 옵션은 트리거뿐입니다.

INT 인 경우 CHECK 제약 조건이 필요합니다.

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
  ... and the rest

또는:

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
  ... and the rest

또는 문자열 SiteID로 살 수 있다면 :

CREATE TABLE Site (
  SiteID ENUM('1', '2', '3', '4'),
  ... and the rest

 

참조 페이지 https://stackoverflow.com/questions/16073268

 

 

반응형

댓글