2017-04-22 19 views
0

私は、MySQLサーバにMySQLの、完全修飾名のinspite

DELETE FROM MY_DB.MY_TABLE; 

をクエリを実行しようとしています。しかし、私はエラー「いいえデータベースが選択されていない」を取得しています。なぜ私はDBを含む完全な名前を与えるときに明示的にDBを選択する必要がありますか?コマンドラインからクエリを実行しようとしていると仮定すると、

+1

あなたは 'USE MY_DB;を選択することができます。 DELETE FROM MY_TABLE; ' –

+0

そのクエリは私にとって役に立ちます。環境に関する情報を追加する必要があります。 –

答えて

3

は、あなたが試すことができます:

use MY_DB; 

これは、デフォルトのデータベースとしてMY_DBを使用します。 Here's使用コマンドのドキュメント。

USE db_nameステートメントは、db_nameデータベースを次のステートメントのデフォルト(現在の)データベース として使用するようにMySQLに指示します。データベース は、セッションが終了するか、別のUSE ステートメントが発行されるまでデフォルトのままです。

更新

useコマンドも同様に失敗した場合、おそらくユーザーはMY_DBへのアクセス権を持っていないそして、その場合には、MySQLのGRANT構文(ドキュメントhere)を使用してアクセス権を付与することができます。照会自体で照会を指定している場合は、データベースを明示的にuseする必要はありません。

+0

「DBを明示的に選択するのはなぜですか?」という答えはどうですか? –

+0

@PaulSpiegelが答えを更新しました。 –

+0

特権問題のようです。私は私のセッションを再開した後、それは働いた!!! – Kannan

関連する問題