現在、2つのスクリプトを実行しています。データベースとユーザーを確実に削除してMySQLで作成する方法
01_INIT_DATABASE.SQL
CREATE DATABASE foobar;
USE foobar;
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'bar';
GRANT ALL PRIVILEGES ON foobar.* TO 'foo'@'localhost' WITH GRANT OPTION;
CREATE USER 'foo'@'%' IDENTIFIED BY 'bar';
GRANT ALL PRIVILEGES ON foobar.* TO 'foo'@'%' WITH GRANT OPTION;
と
01_DROP_DATABASE.SQL
USE foobar
DROP USER 'foo'@'localhost';
DROP USER 'foo'@'%';
DROP DATABASE IF EXISTS foobar;
どちらか一方が正しく実行されていない場合彼らはそれぞれ選択的に失敗します。私は彼らが(それが存在する場合にのみ、ユーザーを削除するには、例えば、または正常に失敗)を確実に実行するために取得できますか
それは、物事に影響を与える場合、私は(antタスクを介してそれらを実行していますが、それはあります本当にただのJava Execの)、
<exec executable="mysql" input="./src/main/ddl/create/01_init_database.sql">
<arg value="-uroot"/>
<arg value="-ptoor"/>
</exec>
の形で私のMySQLバージョンは
mysql Ver 14.14 Distrib 5.5.52, for debian-linux-gnu (x86_64) using readline 6.2
で更新 EXISTSおよびEXIFTSが存在しない場合は、ユーザーに対しては機能しません。 DATABASEではうまく動作します。
ERROR 1064(42000):SQL構文にエラーがあります。 'IF NOT EXISTS'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。foo '@' localhost '1行目の' bar 'で識別されます。
ERROR 1064(42000) SQL構文のエラー。あなたのMySQLサーバーバージョンに対応するマニュアルをチェックしてください。正しい構文は、 'IF EXISTS' foo '@'% ''を1行目で使用してください。
IFが存在し、EXISTSされていない場合、私にUSER – Vihung
ERROR 1064(42000)の構文エラーを与える:あなたはあなたの中にエラーが発生していますSQL構文。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックしてください。正しい構文はIF NOT EXISTS foo '@' localhost 'の近くにあります。1行目の' bar '' IDENTIFIED BY 'bar' ' – Vihung
ERROR 1064(42000) SQL構文。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックしてください。正しい構文については、 'IF EXISTS' foo '@'% ''を1行目で使用してください。 – Vihung