2011-05-07 5 views
1
DROP TABLE IF EXISTS members; 
CREATE TABLE members (
    Member_ID char(10) NOT NULL default '', 
    Provider_ID char(10) NOT NULL default '', 
    First_Name varchar(30) NOT NULL default '', 
    Middle_Initial char(1) NOT NULL default '', 
    Last_Name varchar(40) NOT NULL default '', 
    Address varchar(100) NOT NULL default '', 
    City varchar(100) NOT NULL default '', 
    State char(2) NOT NULL default '', 
    Zip varchar(5) NOT NULL default '', 
    PRIMARY KEY (Member_ID), 
    FOREIGN KEY (PROVIDER_ID) REFERENCES PROVIDER(PROVIDER_ID) 
) ; 

DROP TABLE IF EXISTS provider; Provider_ID char (10) NOT NULL 기본값 '', Provider_Name varchar (50) NOT NULL 기본값, ' 주소 varchar (100) NOT NULL 기본값' ', City varchar (100) NOT NULL 기본값 '', 상태 char (2) NOT NULL 기본값 '', ZIP char (5) NOT NULL 기본값 '', PRIMARY KEY (Provider_ID) );mySql errno : 150 내부 테이블 문 작성

DROP TABLE IF EXISTS 절차; Procedure_ID char (10) NOT NULL 기본값 '', Doctor_ID char (10) NOT NULL 기본값 '', Member_ID char (10) NOT NULL 기본값 '', Procedure_Type_ID char (10) NOT NULL 기본값 ', 프로 시저 _ 이름 varchar (50) NOT NULL 기본값' ', 비용 int (10) NOT NULL 기본값'0 ', 날짜 _ 실행되지 않은 날짜 NOT NULL 기본값'2000-01-01 ', PRIMARY KEY (Procedure_ID), FOREIGN KEY (DOCTOR_ID) 참조 DOCTOR (DOCTOR_ID) FOREIGN KEY (MEMBER_ID) 참조 MEMBER (MEMBER_ID)는 FOREIGN KEY (PROCEDURE_TYPE_ID)는 PROCEDURE_TYPE (PROCEDURE_TYPE_ID) )을 참고 문헌;

DROP TABLE IF EXISTS procedure_type; )) ') NOT NULL 기본, Procedre_Type_Name의 VARCHAR (50') NOT NULL 기본을 NOT NULL 기본 '', Procedure_ID의 문자 (10 ', Procedure_Description의 VARCHAR (255 NOT NULL 기본'표 PROCEDURE_TYPE ( Procedure_Type_ID의 문자 (10 CREATE '', PRIMARY KEY (프로 시저 _ 유형 _ID), 외래 키 (프로 시저 _ID) 참조 절차 (PROCEDURE_ID) );

DROP TABLE IF EXISTS doctor_type; ()) NOT NULL 기본적 TYPE_NAME의 VARCHAR (50 ') NOT NULL 기본', PRIMARY KEY (TYPE_ID) 를 ' Type_Description의 VARCHAR (255 NOT NULL 기본' TYPE_ID 숯 (10) 표 doctor_type을 작성;

DROP TABLE IF EXISTS doctor; Doctor_ID char (10) NOT NULL 기본값 ", Type_ID char (10) NOT NULL 기본값", Doctor_Name varchar (50) NOT NULL 기본값 ", 주소 varchar (100) NOT NULL 기본값 '', 시 varchar (100) NOT NULL 기본값 '', 상태 char (2) NOT NULL 기본값 '', ZIP char (5) NOT NULL 기본값 '', PRIMARY KEY (Doctor_ID), FOREIGN KEY TYPE_ID) REFERENCES DOCTOR_TYPE (TYPE_ID) );

ERROR 1005 (HY000) :

어떤 아이디어 : (150 errno는) 테이블 'thunderhawk.members'을 만들 수 없습니다?

EDIT는 나머지 표를 추가했습니다. 나는 이것이 외래 키 문제라는 것을 알고있다. 나는 외래 키 구문을 따르는 것 같다 ...

+0

'PROVIDER'의 'PROVIDER_ID'데이터 유형은 무엇입니까? –

+0

mysql-error-1005 태그의 정보를 기반으로 할 때 이슈는 외래 키 제약 조건입니다. 또는 오른쪽에있는 많은 관련 링크를 확인할 수 있습니다. –

+0

PROVIDER_ID는 char (10)이며 다른 모든 변수는 연결되어 있습니다. lowercasetablenames var를 어떻게 확인합니까? – user742626

답변

0

보통 dbms가 다음 사항이 잘못되었음을 의미하는 테이블을 생성 할 수없는 경우 : a) dbms 프로세스에 데이터 디렉토리 또는 폴더에 대한 디스크 할당량을 쓸 수있는 쓰기 권한이 없습니다 초과했습니다. b) 파일 시스템이 가득 차서 파일에 데이터를 쓸 공간이 없습니다.

자세한 내용은 mysqld.log를 확인하십시오.

+0

간단한 테이블을 만들 수 있습니다. 나는 이것이 내 외래 키 할당 또는 가능한 내 드롭 테이블 명령과 관련이 있다고 믿는다. – user742626

0

이 코드보십시오 :

여기 참조를 참조하십시오 회원이있는 경우

DROP 표를;

CREATE TABLE members (
    Member_ID char(10) NOT NULL default 0, 
    Provider_ID char(10) NOT NULL default 0, 
    First_Name varchar(30) NOT NULL default 0, 
    Middle_Initial char(1) NOT NULL default 0, 
    Last_Name varchar(40) NOT NULL default 0, 
    Address varchar(100) NOT NULL default 0, 
    City varchar(100) NOT NULL default 0, 
    State char(2) NOT NULL default 0, 
    Zip varchar(5) NOT NULL default 0, 
    PRIMARY KEY (Member_ID), 
    FOREIGN KEY (PROVIDER_ID) REFERENCES PROVIDER(PROVIDER_ID) 
) ;