2014-12-21 2 views
1

MySQL의 외래 키 제약 조건을 추가 할 수 없습니다 :는 MySQL의에서

  • 이노 엔진 school 표에 설정되어
  • 참조 된 :

    CREATE SCHEMA IF NOT EXISTS otes_db; 
    
    USE otes_db; 
    
    CREATE TABLE IF NOT EXISTS school(
        school_code CHAR(3), 
        school_desc VARCHAR(255) NOT NULL, 
        school_head INT UNSIGNED NOT NULL, 
        PRIMARY KEY(school_code), 
        FOREIGN KEY(school_head) REFERENCES user(user_id) 
        ON DELETE CASCADE 
        ON UPDATE CASCADE 
    )ENGINE=INNODB; 
    
    CREATE TABLE IF NOT EXISTS user(
        user_id INT UNSIGNED, 
        user_lname VARCHAR(255) NOT NULL, 
        user_fname VARCHAR(255) NOT NULL, 
        user_mname VARCHAR(255), 
        user_email VARCHAR(255) UNIQUE NOT NULL, 
        user_password VARCHAR(255) NOT NULL, 
        user_type ENUM('CEO', 'VP', 'HEAD', 'CHAIR', 'STUD') NOT NULL, 
        user_isActivated ENUM('Y', 'N') DEFAULT 'N', 
        PRIMARY KEY(user_id) 
    ); 
    

    this thread을 바탕으로, 나는 다음을 점검 한 키가 기본 키입니다 (user_id)

  • 데이터 유형이 동일합니다 (INT UNSIGNED)

그러나, 나는 여전히 school_headuser_id와 오류를 받고 있어요. 내가 놓친 것 없니?

+2

'학교'테이블을 만들기 전에 'user' * 테이블을 만들어야합니다. 더하기'user'는 예약어입니다. 따옴표를 써야합니다. (예약어가 아닌 다른 이름을 찾아보십시오.) –

+0

답변을 작성해 주시면 upvote하고 동의하겠습니다. 'user'에 대한 팁을 주셔서 감사합니다 (그래서 항상 강조 표시됩니다). – silver

답변

0

먼저 사용자 테이블을 만들어야합니다.

관련 문제