2

互いに大きく依存している 26 個のテーブルがあります。各テーブルを作成し、.NET を介してデータベースで実行しましたMySQL Workbench。次に、これらのテーブルをリンクして外部キーを作成するモデルを構築します。それをエクスポートしてメタデータに戻すと、アプリケーションによって作成された適切な外部データを含むテーブルの完全なコードが得られたので、間違いはありませんでした。

しかし、phpMyAdmin で実行するためにファイルをサーバーに配置すると、ファイルの場所を特定しない 150 エラーが発生します。私はそれをグーグルで検索しましたが、ケースごとに異なり、FK は自動インクリメント フィールドではなく、行を作成したときに時間単位を持つ、作成した UT と呼ばれる文字列フィールドです。

CREATE  TABLE IF NOT EXISTS `eduardo8_plataforma`.`aplicativo` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT ,
  `ut` VARCHAR(20) NOT NULL ,
  `nome` VARCHAR(99) NOT NULL ,
  `ver` VARCHAR(20) NULL DEFAULT NULL ,
  `descr` VARCHAR(254) NULL DEFAULT NULL ,
  `tag` VARCHAR(254) NULL DEFAULT NULL ,
  `url` VARCHAR(254) NULL DEFAULT NULL ,
  `cad` VARCHAR(20) NULL DEFAULT NULL ,
  `obj` TEXT NULL DEFAULT NULL ,
  `tab` VARCHAR(254) NULL DEFAULT NULL ,
  `dbn` VARCHAR(254) NULL DEFAULT NULL ,
  `dbu` VARCHAR(254) NULL DEFAULT NULL ,
  `dbs` VARCHAR(254) NULL DEFAULT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `nome` (`nome` ASC) ,
  UNIQUE INDEX `ut_UNIQUE` (`ut` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_swedish_ci;

CREATE  TABLE IF NOT EXISTS `eduardo8_plataforma`.`modulo` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT ,
  `ut` VARCHAR(20) NOT NULL ,
  `app` VARCHAR(20) NULL DEFAULT NULL ,
  `lic` VARCHAR(20) NULL DEFAULT NULL ,
  `tipo` VARCHAR(20) NULL DEFAULT NULL ,
  `nome` VARCHAR(99) NOT NULL ,
  `classe` VARCHAR(99) NOT NULL ,
  `obj` TEXT NULL DEFAULT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `ut_UNIQUE` (`ut` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_swedish_ci;

CREATE  TABLE IF NOT EXISTS `eduardo8_plataforma`.`modulo_app` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT ,
  `ut` VARCHAR(20) NOT NULL ,
  `app` VARCHAR(20) NOT NULL ,
  `modulo` VARCHAR(20) NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_modulo_app_modulo1` (`modulo` ASC) ,
  INDEX `fk_modulo_app_aplicativo1` (`app` ASC) ,
  UNIQUE INDEX `ut_UNIQUE` (`ut` ASC) ,
  CONSTRAINT `fk_modulo_app_modulo1`
    FOREIGN KEY (`modulo` )
    REFERENCES `eduardo8_plataforma`.`modulo` (`ut` )
    ON DELETE CASCADE
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_modulo_app_aplicativo1`
    FOREIGN KEY (`app` )
    REFERENCES `eduardo8_plataforma`.`aplicativo` (`ut` )
    ON DELETE CASCADE
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_swedish_ci;

機能した表(回答後):

CREATE  TABLE IF NOT EXISTS `eduardo8_plataforma`.`modulo_app` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT ,
  `ut` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_swedish_ci' UNIQUE NOT NULL ,
  `app` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_swedish_ci' NOT NULL ,
  `modulo` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_swedish_ci' NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_modulo_app_modulo1` (`modulo` ASC) ,
  INDEX `fk_modulo_app_aplicativo1` (`app` ASC) ,
  UNIQUE INDEX `ut_UNIQUE` (`ut` ASC) ,
  CONSTRAINT `fk_modulo_app_modulo1`
    FOREIGN KEY (`modulo` )
    REFERENCES `eduardo8_plataforma`.`modulo` (`ut` )
    ON DELETE CASCADE
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_modulo_app_aplicativo1`
    FOREIGN KEY (`app` )
    REFERENCES `eduardo8_plataforma`.`aplicativo` (`ut` )
    ON DELETE CASCADE
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_swedish_ci;
4

2 に答える 2