MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL区切り文字エラーが発生したのはいつですか?


MySQL区切り文字は、セミコロン(;)付きのパイプ区切り文字(|)を使用していて、8.0.12より前のMySQLバージョンを使用している場合に発生します。

MySQLはパイプ(|)を1つの区切り文字として扱い、セミコロン(;)は別の区切り文字です。したがって、MySQL区切り文字をパイプやセミコロンと混同しないでください。

:ここでは、MySQLバージョン8.0.12を使用しています。パイプ区切り文字はセミコロンで正常に機能します。 8.0.12より前のバージョンを使用している場合、これにより区切り文字エラーが発生します。

MySQL区切り文字の動作は次のとおりです。

mysql> delimiter |;
mysql> create procedure getSumOfTwoNumbers()
   -> begin
   -> select 2+3 as TotalValue;
   -> end ;
   -> |;
Query OK, 0 rows affected (0.17 sec)
mysql> delimiter ;

次に、callコマンドを使用してストアドプロシージャを呼び出します。クエリは次のとおりです。

mysql> call getSumOfTwoNumbers();

出力は次のとおりです。

+------------+
| TotalValue |
+------------+
|          5 |
+------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

MySQLではセミコロンがデフォルトの区切り文字であり、MySQLのステートメントの終わりを示すため、セミコロンを使用して上記のパイプ区切り文字を実現しないでください。したがって、複数のステートメントを記述しているときに、セミコロンを使用してMySQLストアドプロシージャから戻ることができます。

区切り文字の変更の例を次に示します。

まず、パイプ区切り文字(|)を使用します。パイプに区切り文字を設定する場合は、次のクエリを使用します。

mysql> DELIMITER |

ストアドプロシージャを作成するためのクエリは次のとおりです。

mysql> DELIMITER |
mysql> create procedure Demo()
   -> begin
   -> select 2*3 as TotalMultiplication;
   -> end ;
   -> |
Query OK, 0 rows affected (0.12 sec)

次に、区切り文字をセミコロンで変更します。区切り文字をセミコロンに設定する場合は、次のクエリを使用します。

クエリは次のとおりです。

mysql> delimiter ;

  1. MySQLエラー-#1046-データベースが選択されていません

    エラー-#1046は、テーブルを作成しているときに発生する可能性がありますが、データベースを選択するのを忘れています。以下に示すようにMySQLを開始したとしましょう- 正しいパスワードを入力すると、上記のウィンドウが開きます。次に、データベースを選択せず​​にテーブルを作成します。これはエラーを表示します- mysql> CREATE table TblUni -> ( -> id int, -> Name varchar(100) -> ); エラー1046(3D000):データベースが選択されていません 次のスクリーンショットは同じエラーを示して

  2. MySQLデータベースは、作成時にどこに保存されますか?

    データベースの場所、つまりMySQLで作成された場所が必要な場合は、システム変数@@datadirを使用できます。 構文は次のとおりです SELECT @@datadir; 以下はクエリです mysql> select @@datadir; これが出力です。上記のクエリは場所を返します +---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\P