테스트 사이트 - 개발 중인 베타 버전입니다

DB관련해서 궁금한게 있습니다 채택완료

해동혈문 6년 전 조회 3,330

table name : test

idx int(11) not null auto_increment

user_idx int(11) not null

name varchar(100)

type varchar(10)

 

위와같이 있을때

idx 는 자동으로 숫자가 올라가면서 insert 되니깐 중복이 되지않아서 괜찮은거 같은데요

user_idx , name , type 이 3개가 모두 중복일때 등록이 안되도록 하는 방법은 어떻게 해야하나요?

primary key 를 3개다 넣으면 되는건가요?

예를들어

100 , 가 , 가 데이터가 있을때

100 , 가 , 가 (X)

100 , 가 , 나 (O)

100 , 나 , 나 (O)

이해가 되시는지 모르겠는데 저런식으로 3개다 중복이 안될때만 등록되도록 테이블을 어떻게 생성해야할까요...

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
잉끼s
6년 전

ALTER TABLE [table_name] ADD UNIQUE KEY (column1, column2,   ..... );

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해동혈문
6년 전
감사합니다 어떤식으로 해야하는지 몰랐는데 바로 해결했습니다

댓글을 작성하려면 로그인이 필요합니다.

유찬아빠

$chk = sql_fetch(" select count(*) as cnt from test where user_idx='$user_idx' and name ='$name' and type='$type' ");

 

if($chk['cnt']) alert("이미 등록된 자료입니다.");

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해동혈문
6년 전
php 적용할때 저렇게하면되는거군요... 감사합니다
DB쪽만 생각했었네요 굳굳

댓글을 작성하려면 로그인이 필요합니다.

P
6년 전

유니크를 거세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해동혈문
6년 전
유니크였네요... 감사합니다
primary key 인줄..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인