2012-06-05 1 views
0

그래서 기본적으로 여기 내 테이블 레이아웃의 무시 존재하는 경우 MySQL은 삽입 :하지이 /가

Type_Of  Agreement 
iPad  Heyo! I'm an agreement! 
iPod Touch I'm another agreement! 

는 기본적으로, 관리자는 새로운 유형을 추가 할 수 있습니다 관리자 인터페이스를 짓고 있어요. 그 사람이 이미 존재하는 새로운 유형을 입력 할 수 없도록 만들고 싶습니다. 기본적으로 위의 예에서 새 유형 상자에 'iPad'를 입력하고 제출을 누르면 단순하게 무시되거나 오류가 발생합니다. 당신은 Type_OfUNIQUE 인덱스를 정의 할 필요가

INSERT IGNORE INTO agreements (Type_Of, Agreement) VALUES (?, ?) 
com.Parameters.AddWithValue("", Request.Form["pies"]); 
com.Parameters.AddWithValue("", "Wahey! A sample license!"); 
+2

그래서, 문제는 무엇인가? 'INSERT IGNORE'가 예상했던대로하지 않으면'Type_Of'에 정의 된'UNIQUE' 키가 있습니까? – eggyal

+0

Derp. 아니, 내가하지 않았다. 나는 그 부분을 잊었다. 감사! –

답변

1

(답변-업그레이드) :

여기에 기존 MySQL의 문입니다. the manual에서 설명 된 것처럼

UNIQUE 인덱스는 인덱스의 모든 값이 구별되어야하는 제약 조건을 만듭니다. 기존 행과 일치하는 키 값이있는 새 행을 추가하려고하면 오류가 발생합니다. 모든 엔진의 경우 UNIQUE 색인은 NULL을 포함 할 수있는 열에 대해 복수 NULL 값을 허용합니다. UNIQUE 색인의 열에 접 두부 값을 지정하면 열 값은 접두어 내에서 고유해야합니다.

따라서 :

ALTER TABLE agreements ADD UNIQUE INDEX (Type_Of);