私は、MySQLサーバにMySQLの、完全修飾名のinspite
DELETE FROM MY_DB.MY_TABLE;
をクエリを実行しようとしています。しかし、私はエラー「いいえデータベースが選択されていない」を取得しています。なぜ私はDBを含む完全な名前を与えるときに明示的にDBを選択する必要がありますか?コマンドラインからクエリを実行しようとしていると仮定すると、
私は、MySQLサーバにMySQLの、完全修飾名のinspite
DELETE FROM MY_DB.MY_TABLE;
をクエリを実行しようとしています。しかし、私はエラー「いいえデータベースが選択されていない」を取得しています。なぜ私はDBを含む完全な名前を与えるときに明示的にDBを選択する必要がありますか?コマンドラインからクエリを実行しようとしていると仮定すると、
は、あなたが試すことができます:
use MY_DB;
これは、デフォルトのデータベースとしてMY_DBを使用します。 Here's使用コマンドのドキュメント。
USE db_nameステートメントは、db_nameデータベースを次のステートメントのデフォルト(現在の)データベース として使用するようにMySQLに指示します。データベース は、セッションが終了するか、別のUSE ステートメントが発行されるまでデフォルトのままです。
更新
use
コマンドも同様に失敗した場合、おそらくユーザーはMY_DB
へのアクセス権を持っていないそして、その場合には、MySQLのGRANT
構文(ドキュメントhere)を使用してアクセス権を付与することができます。照会自体で照会を指定している場合は、データベースを明示的にuse
する必要はありません。
「DBを明示的に選択するのはなぜですか?」という答えはどうですか? –
@PaulSpiegelが答えを更新しました。 –
特権問題のようです。私は私のセッションを再開した後、それは働いた!!! – Kannan
あなたは 'USE MY_DB;を選択することができます。 DELETE FROM MY_TABLE; ' –
そのクエリは私にとって役に立ちます。環境に関する情報を追加する必要があります。 –