web-dev-qa-db-ja.com

MySQLWorkbenchフォワードエンジニアリングエラー

MySql Workbench 8.0でモデルに取り組んでいます。フォワードエンジニアリングをクリックして、取得したモデルのスクリプトを生成しようとしています

Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE,
  CONSTRAINT `fk_Compras_Personas`
    FOREIGN KEY (`persona_id`)
    R' at line 9
SQL Code:
        -- -----------------------------------------------------
        -- Table `bd_inventario2018_2`.`compras`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `bd_inventario2018_2`.`compras` (
          `nmcompra` INT(11) NOT NULL,
          `persona_id` INT(11) NOT NULL,
          `fecompra` DATE NOT NULL,
          PRIMARY KEY (`nmcompra`, `persona_id`),
          INDEX `fk_Compras_Personas_idx` (`persona_id` ASC) VISIBLE,
          CONSTRAINT `fk_Compras_Personas`
            FOREIGN KEY (`persona_id`)
            REFERENCES `bd_inventario2018_2`.`personas` (`id`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8

SQL script execution finished: statements: 6 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

または、取得したモデルを同期化しようとすると

Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE' at line 4
SQL Code:
        ALTER TABLE `bd_inventario2018_2`.`productos` 
        ADD COLUMN `anchetas_id` INT(11) NOT NULL AFTER `psventa`,
        ADD COLUMN `productoscol` VARCHAR(45) NOT NULL AFTER `anchetas_id`,
        ADD INDEX `fk_productos_Anchetas1_idx` (`anchetas_id` ASC) VISIBLE

SQL script execution finished: statements: 3 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

誰かが何が起こっているのか知っていますか?これは自動的なプロセスであり、私は何も上書きしていません、

ありがとう

6

MySQL Workbenchは、MySQL 8(新しい非表示のインデックスをサポートする)用のスクリプトを生成していますが、これはおそらくありません。

使用しているMySQLバージョンをModel\Model Options\MySQL\Target MySQL Versionで指定するか、グローバルにEdit\Preferences\Modelling\MySQL\Target MySQL Versionで指定する必要があります。

10
Solarflare

または、MySQL Workbench GUIで[編集]-> [設定]を選択し、次に[モデリング]-> [Mysql]に移動して、デフォルトのターゲットMySQLを変更できます。

2
Felipe Volpato

バージョン= 8.0.17を使用して、同じ問題が発生しました。

「外部キーオプション」セクションでアクションが選択されていない場合に関係が形成されると、エラーが発生します。 [SQL生成でスキップ]がオンになっていることを確認します([アクションなし]が選択されている場合)。

enter image description here

これで問題が解決するはずです!

1
Johan Fick