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;
CREATE TABLE provider (
    Provider_ID char(10) NOT NULL default '',
    Provider_Name varchar(50) NOT NULL default '',
    Address varchar(100) NOT NULL default '',
    City varchar(100) NOT NULL default '',
    State char(2) NOT NULL default '',
    Zip char(5) NOT NULL default '',
    PRIMARY KEY (Provider_ID)
) ;




DROP TABLE IF EXISTS procedures;
CREATE TABLE procedures (
    Procedure_ID char(10) NOT NULL default '',
    Doctor_ID char(10) NOT NULL default '',
    Member_ID char(10) NOT NULL default '',
    Procedure_Type_ID char(10) NOT NULL default '',
    Procedure_Name varchar(50) NOT NULL default '',
    Cost int(10) NOT NULL default '0',
    Date_Executed date NOT NULL default '2000-01-01',
    PRIMARY KEY(Procedure_ID),
    FOREIGN KEY(DOCTOR_ID) REFERENCES DOCTOR(DOCTOR_ID),
    FOREIGN KEY(MEMBER_ID) REFERENCES MEMBER(MEMBER_ID),
    FOREIGN KEY(PROCEDURE_TYPE_ID) REFERENCES PROCEDURE_TYPE(PROCEDURE_TYPE_ID)
) ;




DROP TABLE IF EXISTS procedure_type;
CREATE TABLE procedure_type (
    Procedure_Type_ID char(10) NOT NULL default '',
    Procedre_Type_Name varchar(50) NOT NULL default '',
    Procedure_Description varchar(255) NOT NULL default '',
    Procedure_ID char(10) NOT NULL default '',
    PRIMARY KEY(Procedure_Type_ID),
    FOREIGN KEY(PROCEDURE_ID) REFERENCES PROCEDURES(PROCEDURE_ID)
) ;







DROP TABLE IF EXISTS doctor_type;
CREATE TABLE doctor_type (
    Type_ID char(10) NOT NULL default '',
    Type_Name varchar(50) NOT NULL default '',
    Type_Description varchar(255) NOT NULL default '',
    PRIMARY KEY(Type_ID)
) ;





DROP TABLE IF EXISTS doctor;
CREATE TABLE doctor (
    Doctor_ID char(10) NOT NULL default '',
    Type_ID char(10) NOT NULL default '',
    Doctor_Name varchar(50) NOT NULL default '',
    Address varchar(100) NOT NULL default '',
    City varchar(100) NOT NULL default '',
    State char(2) NOT NULL default '',
    Zip char(5) NOT NULL default '',
    PRIMARY KEY(Doctor_ID),
    FOREIGN KEY(TYPE_ID) REFERENCES DOCTOR_TYPE(TYPE_ID)
) ;

エラー 1005 (HY000): テーブル 'thunderhawk.members' を作成できません (errno: 150)

何か案は?

私はそれが外部キーの問題であることを知っています。外部キーの構文に従っているようです...

4

4 に答える 4

-1

このコードを試してください:

DROP TABLE IF EXISTS メンバー。

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)
) ;
于 2014-12-02T13:14:29.583 に答える
-1

通常、dbms がテーブルを作成できない場合、次のような問題が発生している可能性があります: a) dbms プロセスにデータ ディレクトリへの書き込み権限がないか、フォルダのディスク クォータを超えています。b) ファイル システムがいっぱいで、ファイルにデータを書き込むスペースがありません。

詳細については、mysqld.log を確認してください。

于 2011-05-07T00:56:25.180 に答える
-1

最初に、両方のテーブルが InnoDB のような同じストレージ タイプを持つ必要があることを確認する必要があります。

ここで参照を参照してください: http://verysimple.com/2006/10/22/mysql-error-number-1005-cant-create-table-mydbsql-328_45frm-errno-150/

于 2011-05-07T01:09:11.787 に答える