2013-01-09 3 views
-1

왜이 문장이 작동하지 않습니까?왜이 문장은 실패합니까?

편집 : 내 잘못, 나는 MSSQL 생각

CREATE TABLE capacidad (
    cod_capacidad INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    cod_area INTEGER UNSIGNED NOT NULL, 
    capacidad VARCHAR(100) NOT NULL, 
PRIMARY KEY(cod_capacidad), 
INDEX capacidad_FKIndex1(cod_area), 
FOREIGN KEY(cod_area) 
    REFERENCES AREA(cod_area) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
    ) 
ENGINE=INNODB; 
+5

괜찮아요. 오류가 무엇입니까? – Kermit

+1

'AREA' 테이블이 있습니까? –

+0

죄송합니다. AREA는 키워드입니다.이 이유는 문제였습니다. 답변 해 주셔서 감사합니다. – luchopintado

답변

-1

봅니다 CREATE INDEX 구문을 사용하여 CREATE TABLE 문 밖에서 인덱스를 만들 수 있습니다.

추신. 이 문장은 내 DB에서 작동합니다. 당신이 다음 사항을 확인해야합니다 :

2

오류 150을 얻을 수 있습니다

  1. 두 테이블은 = 이노ENGINE해야합니다.
  2. 두 테이블의 문자 집합이 같아야합니다.
  3. 상위 테이블의 PK 컬럼과 FK 컬럼은 동일한 데이터 유형이어야합니다.
  4. 부모 테이블의 PK 열과 FK 열에 정의 데이터 정렬 유형이있는 경우 동일한 데이터 정렬 유형이 있어야합니다.
  5. 이미 외부 키 테이블에 데이터가있는 경우 FK 열 값은 부모 테이블 PK 열의 값과 일치해야합니다.

희망이 도움이됩니다.

ps : 다른 테이블도 공유해야합니다.

관련 문제