2010-07-27 3 views
1

고정 된 크기의 입력을 받아 들여야하는 Mysql 테이블에 필드를 갖고 싶습니다. 입력 데이터는 숫자이지만 문자열에 대한 솔루션도 고려할 수 있습니다.이 데이터를 varchar와 같은 것으로 저장하는 데 문제가 없습니다.mysql에서 길이가 고정 된 숫자

정확히 말하면, 나는 7 자리 또는 7 자리보다 큰 숫자를 저장할 수없는 데이터 유형이 필요합니다. 트리거/저장 프로 시저를 사용하고 싶지 않습니다.

+0

클라이언트/서버 측 유효성 확인 – Sarfraz

답변

0

이것은 저장 프로 시저에서 가능할 수 있지만 데이터베이스 수준에서는 수행하지 않습니다. 이와 같은 유효성 검사는 응용 프로그램에 속합니다.

0

트리거 나 저장 프로 시저를 사용하지 않고 현재 MySQL에서이를 달성 할 방법이 없다고 생각합니다. MySQL이 check constraints을 지원한다면 당신은 할 수는 있지만 할 수는 없다.

0

가능한 솔루션은 다음과 같습니다 갱신/삽입에

  • TRIGGER.
  • CHECK 제약 조건이지만 MySQL은 검사 제약 조건을 파싱하고 즉시 폐기합니다.
  • 응용 프로그램 수준 유효성 검사.
  • 7 자리의 900,000 정수를 포함하는 찾아보기 테이블에 대한 외래 키입니다.

유일한 다른 제안은 CHECK 제약 조건을 지원하는 SQL 데이터베이스로 마이그레이션하는 것입니다. CHECK 제약 조건을 지원

오픈 소스 데이터베이스는 다음과 같습니다

  • 의 PostgreSQL을
  • SQLite는
  • 파이어 버드
  • 아파치 더비는
  • HyperSQL

모든 상용 데이터베이스도 CHECK 지원 제약 조건.

기본적으로 MySQL은 시장에서 이없는 유일한 SQL 데이터베이스입니다. CHECK 제약 조건을 지원합니다.

+0

"7 자리 900,000 개의 정수가 포함 된 조회 테이블의 외래 키" "코미디 옵션"이라고도합니다. – Hammerite

+1

@Hammerite : 주어진 제약 조건에 대해 주어진 문제에 대한 해결책이 항상 있습니다. 비용 절감이 바람직하지 않을 수도 있지만 효과가 있습니다! :) –

+0

다른 데이터베이스 서버로 마이그레이션해야하는 것처럼 보입니다. ( – Raj

관련 문제