CREATE TABLE IF NOT EXISTS product (
code SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '코드(0~65535)',
procode VARCHAR(20) DEFAULT '' NOT NULL COMMENT '관리코드',
classcode SMALLINT UNSIGNED DEFAULT 1 NOT NULL COMMENT '상품분류코드',
bcode VARCHAR(30) DEFAULT '' NOT NULL COMMENT '바코드',
model VARCHAR(30) DEFAULT '' NOT NULL COMMENT '모델명',
proname VARCHAR(50) DEFAULT '' NOT NULL COMMENT '상품명',
norm VARCHAR(30) DEFAULT '' NOT NULL COMMENT '규격',
unit VARCHAR(30) DEFAULT '' NOT NULL COMMENT '단위',
buyprice DOUBLE DEFAULT 0 NOT NULL COMMENT '매입가',
saleprice DOUBLE DEFAULT 0 NOT NULL COMMENT '매출가',
gongprice DOUBLE DEFAULT 0 NOT NULL COMMENT '공임비',
taxmode TINYINT(1) DEFAULT 0 NOT NULL COMMENT '부가세(0:과세,1:면세)',
location VARCHAR(30) DEFAULT '' NOT NULL COMMENT '상품위치',
bigo VARCHAR(255) DEFAULT '' NOT NULL COMMENT '비고',
pic1 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진1',
pic2 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진2',
pic3 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진3',
pic4 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진4',
pic5 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진5',
pic6 VARCHAR(200) DEFAULT '' NOT NULL COMMENT '사진6',
hidden TINYINT(1) DEFAULT 0 NOT NULL COMMENT '숨김(0:사용, 1:숨김)',
INDEX idx_product_classcode(classcode),
PRIMARY KEY (code),
CONSTRAINT product_classcode_fk FOREIGN KEY(classcode)
REFERENCES prodclass(code)
ON UPDATE CASCADE
) COMMENT = '부품' TYPE = InnoDB;
CREATE TABLE IF NOT EXISTS invn_real (
code SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '코드(0~65535)',
scode SMALLINT UNSIGNED DEFAULT 1 NOT NULL COMMENT '창고코드',
pcode SMALLINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '상품코드',
qnt DOUBLE DEFAULT 0 NOT NULL COMMENT '현재고',
INDEX idx_invn_real_scode (scode), #창고코드
INDEX idx_invn_real_pcode (pcode), #부품코드
PRIMARY KEY (code),
CONSTRAINT invn_real_scode_fk FOREIGN KEY(scode)
REFERENCES storage(code)
ON UPDATE CASCADE,
CONSTRAINT invn_real_pcode_fk FOREIGN KEY(pcode)
REFERENCES product(code)
ON UPDATE CASCADE
) COMMENT = '현재고' TYPE = InnoDB;
위와 같이 부품테이블과 부품현재고 테이블을 만들었습니다.
그런데 부품코드를 SMALLINT 만들었는데 데이터가 늘어남에 따라서 int로 변경해야 합니다.
헌데 FOREIGN KEY 문제로
ALTER TABLE `invn_real` CHANGE COLUMN `pcode` `pcode` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '상품코드' AFTER `scode`;
해당 구문이 오류를 발생합니다.
혹시 방법 없을까요?
SET foreign_key_checks = 0;
ALTER TABLE `invn_real` CHANGE COLUMN `pcode` `pcode` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '상품코드' AFTER `scode`;
SET foreign_key_checks = 1;
이런식으로 해도 안되네요. ㅡㅡ;;
도움 부탁드립니다.
|