2010-12-02 13 views
1

mySQLAdminツールを使用して、テーブルを作成しようとしました。このツールはSQL文を生成し、それを他の手がかりとして「テーブルを作成できません」というエラーをどのようなものに置き換えますか?このMySQL Create Tableステートメントが失敗するのはなぜですか?

ここにある:

CREATE TABLE `C121535_vubridge`.`Products` (
    `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    `pr_Name` VARCHAR(45) NOT NULL, 
    `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring', 
    `pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series', 
    `pr_SponsorID` INTEGER UNSIGNED NOT NULL, 
    `pr_DateCreation` DATETIME NOT NULL, 
    `pr_Price` FLOAT NOT NULL, 
    `pr_DescriptionText` TEXT, 
    `pr_Description` VARCHAR(245), 
    PRIMARY KEY (`pr_ID`), 
    CONSTRAINT `FK_prAuthor` FOREIGN KEY `FK_prAuthor` (`pr_AuthorID`) 
    REFERENCES `Members` (`m_ID`) 
    ON DELETE SET NULL 
    ON UPDATE NO ACTION, 
    CONSTRAINT `FK_Sponsor` FOREIGN KEY `FK_Sponsor` (`pr_SponsorID`) 
    REFERENCES `Members` (`m_ID`) 
    ON DELETE SET NULL 
    ON UPDATE NO ACTION 
) ENGINE = InnoDB; 

誰かが助けることができますか?

答えて

3

CREATE TABLEは、私の作品:

CREATE TABLE `Products` (
`pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
`pr_Name` VARCHAR(45) NOT NULL, 
`pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring', 
`pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series', 
`pr_SponsorID` INTEGER UNSIGNED NOT NULL, 
`pr_DateCreation` DATETIME NOT NULL, 
`pr_Price` FLOAT NOT NULL, 
`pr_DescriptionText` TEXT, 
`pr_Description` VARCHAR(245), 
PRIMARY KEY (`pr_ID`) 
) 

を...ので、私はC121535_vubridge.MEMBERSが既に存在していないことを信じるように傾いています。 C121535_vubridge.MEMBERSは、PRODUCTS表のCREATE TABLEステートメントが実行される前に作成する必要があります。

0

作成テーブルを分割して、その時点で1つの部分だけを試してみてください。このようにして、失敗した行を特定することができます。私は外部キー参照省略した場合

+0

既存のデータが制約に違反している可能性がありますか、それとも別のエラーがありますか? – Orbling

0

私は、シンボルの副次句は、(あなたのケースでは、各句のFOREIGN KEYの前にバック引用符で囲まれた文字列、FK_prAuthorFK_Sponsor)CONSTRAINT句のために与えられている場合は、データベースで一意でなければならないことリファレンスマニュアルに注意してください。彼らは?そうでない場合、そのシンボルは省略でき、InnoDBは自動的にそのシンボルを割り当てます。

同様に、FKが参照するテーブルには、このcreate文が予期する構造体がない可能性があります。

関連する問題