1

私はphpMyadmin、MySQL 5.1バージョンを使用しており、以下でこのSQLを実行しようとしていますが、phpmyadinでこのコードを実行すると、「テーブル'datacode.foto'を作成できません」というエラーが表示されます(errno:150) 、私のコードで何が起こっているのかを知っている人がいますか?

CREATE  TABLE IF NOT EXISTS `projeto` (
`proj_id` INT NOT NULL AUTO_INCREMENT ,
  `proj_nome` VARCHAR(40) NULL ,
  `proje_descr` VARCHAR(700) NULL ,
  `proj_oque_fizemos` VARCHAR(200) NULL ,
  `proj_url` VARCHAR(250) NULL ,
  `proj_descr_url` VARCHAR(250) NULL ,
  PRIMARY KEY (`proj_id`) )
ENGINE = InnoDB;



CREATE  TABLE IF NOT EXISTS `categoria` (
  `cat_id` INT NOT NULL AUTO_INCREMENT ,
  `cat_nome` VARCHAR(45) NULL ,
  PRIMARY KEY (`cat_id`) )
ENGINE = InnoDB;



CREATE  TABLE IF NOT EXISTS `foto` (
  `foto_id` INT NOT NULL AUTO_INCREMENT ,
  `foto_url` VARCHAR(270) NULL ,
  `projeto_proj_id` INT NOT NULL ,
  PRIMARY KEY (`foto_id`) ,
  INDEX `fk_foto_projeto1_idx` (`projeto_proj_id` ASC) ,
  CONSTRAINT `fk_foto_projeto1`
    FOREIGN KEY (`projeto_proj_id` )
    REFERENCES `mydb`.`projeto` (`proj_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE  TABLE IF NOT EXISTS `projeto_por_categoria` (
  `projeto_proj_id` INT NOT NULL ,
  `categoria_cat_id` INT NOT NULL ,
  PRIMARY KEY (`projeto_proj_id`, `categoria_cat_id`) ,
  INDEX `fk_projeto_has_categoria_categoria1_idx` (`categoria_cat_id` ASC) ,
  INDEX `fk_projeto_has_categoria_projeto_idx` (`projeto_proj_id` ASC) ,
  CONSTRAINT `fk_projeto_has_categoria_projeto`
    FOREIGN KEY (`projeto_proj_id` )
    REFERENCES `mydb`.`projeto` (`proj_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_projeto_has_categoria_categoria1`
    FOREIGN KEY (`categoria_cat_id` )
    REFERENCES `mydb`.`categoria` (`cat_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
4

2 に答える 2

0

データベース内のテーブルを参照していmydbますが、テーブルは実際には というデータベース内にありますdatacode

REFERENCES `mydb`.`projeto` (`proj_id` )
           ^^^^^^^--- change (or remove) this database qualifier
于 2012-12-02T21:46:37.927 に答える
0

これらの行が原因で、このエラーが発生します。

REFERENCES `mydb`.`projeto` (`proj_id` )

REFERENCES `mydb`.`categoria` (`cat_id` )

それらを置き換えると、動作するはずです

REFERENCES `projeto` (`proj_id` )

REFERENCES `categoria` (`cat_id` )

ここにビルドがあります: http://sqlfiddle.com/#!8/751c2

于 2012-12-02T21:49:44.433 に答える