web-dev-qa-db-ja.com

MySQLエラー1064構文ですが、すべてが正常に見えます

Xamppコントロールパネルを使用して、そこからApacheとmysqlのプロセスを開始します。次に、mysqlワークベンチに移動し、サーバーのステータスは大丈夫のようです、ここにいくつかの情報があります

Host: Windows-PC
Socket: C:/xampp/mysql/mysql.sock
Port: 3306
Version 10.1.31-MariaDB mariadb.org binary distribution
Compiled For: Win32(32)
Configuratin File: unknown

次に、ダミースキーマの外部キーを追加しようとするたびに:

 ALTER TABLE `puppies`.`animals` 
 ADD INDEX `Breed_idx` (`BreedID` ASC) VISIBLE;
 ;
 ALTER TABLE `puppies`.`animals` 
 ADD CONSTRAINT `Breed`
 FOREIGN KEY (`BreedID`)
 REFERENCES `puppies`.`breeds` (`Breed`)
 ON DELETE NO ACTION
 ON UPDATE NO ACTION;

次のエラーが表示されます

 ERROR 1064: You have an error in your SQL syntax; check the manual that 
 corresponds to your MariaDB server version for the right syntax to use near 
 '' at line 2
 SQL Statement:
 ALTER TABLE `puppies`.`animals` 
 ADD INDEX `Breed_idx` (`BreedID` ASC) VISIBLE

XamppがmariaDbでmysql構文を使用し始めるようにするにはどうすればよいですか?

または、問題の私の理解が間違っている場合、xamppを使用するときにこの種の問題に再び直面する必要がないようにするにはどうすればよいですか?

7
user6551302

問題はWord VISIBLEであり、削除すると機能します。インデックスはデフォルトで表示されます。

あなたの質問:「VISIBLEを削除しても問題なく動作するのに、なぜmysqlワークベンチは可視を追加することにしたのですか?」

私の答え:インデックスを非表示にするオプションはMariaDBにはまだ実装されていません(afaik!)。

更新:

MariaDBの構文は異なります。このリファレンスを参照してください: https://jira.mariadb.org/browse/MDEV-7317

12
Daniel W.

MySQL DBでMaria DBを使用しているユーザーに追加するだけで、mysqlをインストールする必要はありません。 「デフォルトのターゲットMySQLバージョン」を設定から5.7または5.6に変更するだけで、VISIBLEキーワードはワークベンチによって削除されます。 MySQL Workbench Preference Changes

Mysqlのバグからのリンクです https://bugs.mysql.com/bug.php?id=92269

8
HussoM

MySQL Workbenchを使用していますが、同じ問題があります。 環境設定の変更が機能しませんでした

ソリューション:モデルをフォワードエンジニアにエクスポートする場合は、別の場所で構成を変更する必要があります。

  1. [モデル]> [モデルオプション]に移動します
  2. モデルオプション内で、MySQLに移動します
  3. 次に、「ターゲットMySQLバージョン」を5.6に変更します

example here

1
user2461864

ダンあなたは素晴らしいです!!

これを持っていた

INDEX `fk_quotes_users_idx` (`users_id` ASC) VISIBLE,
      CONSTRAINT `fk_quotes_users`

エラー1064が発生していました

これを入れてください(削除済み)

INDEX `fk_quotes_users_idx` (`users_id` ASC),
      CONSTRAINT `fk_quotes_users`

そして素晴らしい仕事をしました!

0
jpizzle