2013-02-21 4 views
1

MySQL에서 다음 문장으로 테이블을 만들었습니다.MySQL에 삽입하기 전에 문자열 길이를 어떻게 확인할 수 있습니까?

  1. 확인 사용자 이름과 암호가 4 명 이상 또는 8 자 수 :

    CREATE TABLE Users (
        UserName VARCHAR(15) NOT NULL PRIMARY KEY, 
        Password VARCHAR(15) NOT NULL, 
        Active Bool DEFAULT TRUE 
    ) 
    

    그래서 나는이 테이블에이 트리거를 확인합니다. (새 행을 삽입 할 때 문자열의 최소 길이를 확인하십시오.)

  2. 암호를 확인하기 위해 정규 표현식을 만드십시오. 예를 들어 대문자와 소문자 및 숫자가 모두 포함되기를 원합니다.

안내해주세요. 고마워요.

+0

MySQL은 여전히 ​​검사 제약 조건을 지원하지 않으므로이를 위해 트리거가 필요합니다. –

+0

왜이 작업을 MySQL에 맡기고 싶습니까? 클라이언트 소프트웨어에서 수행하십시오. – mvp

+1

@mvp 때로는 데이터베이스가 여러 프로젝트에서 사용됩니다 ...이 말은하지 않고 인수입니다 :) –

답변

2

는 먼저
MySQL이 다른 RDBMS

달리 CHECK 제약 조건을 지원하지 않는 데이터를 테스트하기 위해 저장 프로 시저 또는 트리거를 사용할 수는 삽입/업데이트하기 전에 테스트하기 때문에 저장 프로 시저의 접근 방식은 더 분명하다.
나중에 코드 유지 관리를 위해 트리거가 상당히 불투명 할 수 있습니다.

그러나 데이터베이스에 일반 텍스트 암호가있는 것이 더 중요합니다. 평소에 사용하는 소금과 해시는 어디 있습니까?