답변 10개 / 댓글 8개
채택된 답변
+20 포인트
참고하세요
ALTER TABLE `g5_shop_item` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT;
it_id 가 참조로 되는 영역들에서는 varchar를 int로 변경하는 작업들을 다 하셔야 합니다.
플래토님 ... DB만 새로 덮어 쒸우고 ....
아무것도 입력 안된상태 에서 위 작업을 마치면 적용 가능 하다는
말씀 이신거죠?
AUTO_INCREMENT 는 g5_shop_item it_id 에서 한번만 해주면 되는거죠?
답변에 대한 댓글 1개
@isum
영카트 빈 형태로 만든상황에서 it_id를 순차로 만드신다는 목적을 처리하기 위해서
적용하는 것에 한해서 말씀드린것입니다.
int 형태로 바꾸는게 먼저이고
키에 해당되는 필드인 it_id 에 순차증가값인 it_id로 변경하시는게 맞고
입력처리하는 로직들에서 it_id를 기록/갱신하는 로직을 제거하셔야합니다.
물론 g5_shop_item 에 해당되는것이구요
그외의 it_id를 참조로 사용하는 테이블들에서 varchar로 사용해도 상관은 없겠지만
안정성을 위해서 int로 변경하는게 좋지만.. 다른 로직들이 수정되는게 불편하시면
varchar로 사용하셔도 됩니다.
영카트 빈 형태로 만든상황에서 it_id를 순차로 만드신다는 목적을 처리하기 위해서
적용하는 것에 한해서 말씀드린것입니다.
int 형태로 바꾸는게 먼저이고
키에 해당되는 필드인 it_id 에 순차증가값인 it_id로 변경하시는게 맞고
입력처리하는 로직들에서 it_id를 기록/갱신하는 로직을 제거하셔야합니다.
물론 g5_shop_item 에 해당되는것이구요
그외의 it_id를 참조로 사용하는 테이블들에서 varchar로 사용해도 상관은 없겠지만
안정성을 위해서 int로 변경하는게 좋지만.. 다른 로직들이 수정되는게 불편하시면
varchar로 사용하셔도 됩니다.

저 같으면 여분 필드를 활용해서 이용할 것 같습니다.
물론 주문서에는 그 상품에 관한 여분필드 정보를 갖고 오게끔 하면 될 것 같습니다.
제가 보기에는카트 테이블에서 ct_id는 인덱스를 잡아 주는 것이고
od_id 가 직접적인 주문 번호 인것 같습니다.
질문에 상품코드을 물어보셨고 수정된 코드는 카트테이블 it_id에 잘 들어 갑니다.
궁금한 것은 왜 카트 테이블에서 상품코드를 변형 하실려고 하는지 궁금합니다.
답변에 대한 댓글 1개
그냥 사용해도 무방 한데요 .....
카테고리 id (ca_id) 를
분류명 아무개(ca_id 는 nt)
nt상품코드 > nt123456 식으로 보여지게 하려고 합니다.
(순차적 으로 한다면 nt1 식이 되겠지요?) ca_id + it_id 식이
되겠네요. it_id 앞에 ca_id를 붙이려고 하는데 생각보다 쉽지가
않더라구요.
부품을 진열해 놓고 주문이 오면 nt5 일 경우 nt 라는 칸에 5번 물건을
내어주면 된다 식으로 운영을 해보려고 해서 그렇습니다.
* 질문에 상품코드을 물어보셨고 수정된 코드는 카트테이블 it_id에 잘 들어 갑니다.
라고 하셨는데요 .... AUTO_INCREMENT 이 친구만 들어가면 에러가 보여지네요.
카테고리 id (ca_id) 를
분류명 아무개(ca_id 는 nt)
nt상품코드 > nt123456 식으로 보여지게 하려고 합니다.
(순차적 으로 한다면 nt1 식이 되겠지요?) ca_id + it_id 식이
되겠네요. it_id 앞에 ca_id를 붙이려고 하는데 생각보다 쉽지가
않더라구요.
부품을 진열해 놓고 주문이 오면 nt5 일 경우 nt 라는 칸에 5번 물건을
내어주면 된다 식으로 운영을 해보려고 해서 그렇습니다.
* 질문에 상품코드을 물어보셨고 수정된 코드는 카트테이블 it_id에 잘 들어 갑니다.
라고 하셨는데요 .... AUTO_INCREMENT 이 친구만 들어가면 에러가 보여지네요.
ALTER TABLE `g5_shop_cart` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT -> 카트 테이블에서 변경 하시는 건가요
it_id의 타입을 varchar에서 int로 바꾸고
컬럼의 속성을 auto_increment 로 변경해보세요
자동증가 됩니다.
답변에 대한 댓글 2개
it_id 실행(변경)
후 ....
이름 종류 길이/값 기본값 데이터정렬방식 보기 Null A I 설명 컬럼이동
순으로 보여집니다. 플래토님 말씀처럼 타입은 종류 에서 쉽게 변경이 가능 하구요.
컬럼의 속성을 auto_increment 로 변경해 보려고 하는데요 ....
어느 항목에서 해 주어야 하는지요? 조언 좀 부탁 드립니다.
종류의 INT 값만 변경 시도를 하면 질의오류 #1067 - Invalid default value for 'it_id' 라고
에러 팝업을 보여 주네요.
후 ....
이름 종류 길이/값 기본값 데이터정렬방식 보기 Null A I 설명 컬럼이동
순으로 보여집니다. 플래토님 말씀처럼 타입은 종류 에서 쉽게 변경이 가능 하구요.
컬럼의 속성을 auto_increment 로 변경해 보려고 하는데요 ....
어느 항목에서 해 주어야 하는지요? 조언 좀 부탁 드립니다.
종류의 INT 값만 변경 시도를 하면 질의오류 #1067 - Invalid default value for 'it_id' 라고
에러 팝업을 보여 주네요.
답변을 작성하려면 로그인이 필요합니다.

ALTER TABLE `g5_shop_cart` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT
MySQL 메시지: 도움말
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
식으로 에러가 보여지네요. 조언 좀 부탁 드립니다.
phpmyadmin 버전이 다른것으로 수동으로 편집 > 수정에 들어가서 추가 항목에
종류 INT Null not null 추가 auto_increment 를 선택해도 같은 에러 메세지가 보여진답니다.