0

MySQL Workbench で新しいデータベースを作成していましたが、多くのエラーが発生します。ということで、手動で作成してみました。しかし、別のエラーも発生します。何が起こっているのか理解できません。

それは私のSQLコードです:

CREATE DATABASE data;

USE data;

CREATE  TABLE IF NOT EXISTS `TB_CHILD` (
 `ID` INT NOT NULL AUTO_INCREMENT ,
 `NAME` VARCHAR(250) NOT NULL ,
 `STATUS` ENUM('A','I') NOT NULL ,
 PRIMARY KEY (`ID`) )
ENGINE = InnoDB;

CREATE  TABLE IF NOT EXISTS `TB_PARENT` (
 `ID` INT NOT NULL AUTO_INCREMENT ,
 `TITLE` VARCHAR(250) NOT NULL ,
 `CHILD` INT NOT NULL ,
 `STATUS` ENUM('A','I') NOT NULL ,
 PRIMARY KEY (`ID`) ,
 INDEX `FK_PARENT_CHILD` (`CHILD` ASC) ,
 CONSTRAINT `FK_PARENT_CHILD`
   FOREIGN KEY (`CHILD` )
   REFERENCES `TB_CHILD` (`ID` ))
ENGINE = InnoDB;

エラー コード 1005 が常に表示されます。Mysql Server 5.5 を使用しています。コードの何が問題になっていますか?

編集: コード USE データで更新。しかし、私はまだ同じエラーが発生します。

4

3 に答える 3

2

作成したデータベース「data」を使用します。

use data;

データベースは 1 回だけ作成する必要がありますが、mysql セッションを開始するたびに選択して使用する必要があります。データベースを選択しなかった場合、テーブルの作成は失敗します。そのため、エラー 1005 が発生します。

于 2012-05-17T14:02:05.800 に答える
2

まだ存在しないフィールドへのインデックスを作成しようとしています:

INDEX `FK_PARENT_CHILD` (`CHILD` ASC) ,
 CONSTRAINT `FK_PARENT_CHILD`
   FOREIGN KEY (`CHILD` )
   REFERENCES `TB_CHILD` (`ID` ))

順序を元に戻してみてください:

CONSTRAINT `FK_PARENT_CHILD`
   FOREIGN KEY (`CHILD` )
   REFERENCES `TB_CHILD` (`ID` )),
INDEX `FK_PARENT_CHILD` (`CHILD` ASC)
于 2012-05-17T14:27:59.193 に答える
1

データベースを作成したが、それを選択してテーブルを作成しなかった場合は、次のことを試してください。

CREATE DATABASE data;

use data;

CREATE  TABLE IF NOT EXISTS `TB_CHILD` (
...
于 2012-05-17T13:58:14.247 に答える