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

プリペアドステートメントとMySQLユーザー変数の類似点は何ですか?


MySQLユーザー変数は、それらが使用されるクライアント接続に固有であり、その接続の間のみ存在することがわかっています。接続が終了すると、そのすべてのユーザー変数が失われます。同様に、プリペアドステートメントも、それが作成されたセッションの期間中のみ存在し、それが作成されたセッションに表示されます。セッションが終了すると、そのセッション用に準備されたすべてのステートメントが破棄されます。

もう1つの類似点は、プリペアドステートメントもMySQLユーザー変数のように大文字と小文字を区別しないことです。たとえば、stmt11とSTMT11はどちらも、次の例に示されているものと同じです-

mysql> Select * from student;
+------+-------+
| Id   | Name  |
+------+-------+
| 1    | Ram   |
| 2    | Shyam |
| 3    | Rohan |
+------+-------+
3 rows in set (0.00 sec)

mysql> SET @A = 'Sohan', @B = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE Stmt11 USING @A, @B;
Query OK, 1 row affected (0.12 sec)

mysql> Select * from Student;
+------+-------+
| Id   | Name  |
+------+-------+
| 1    | Ram   |
| 2    | Shyam |
| 3    | Sohan |
+------+-------+
3 rows in set (0.00 sec)

mysql> SET @A = 'Gaurav', @B = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE STMT11 USING @A, @B;
Query OK, 1 row affected (0.04 sec)

mysql> Select * from Student;
+------+--------+
| Id   | Name   |
+------+--------+
| 1    | Ram    |
| 2    | Shyam  |
| 3    | Gaurav |
+------+--------+
3 rows in set (0.00 sec)

上記の例では、一度stmt11を実行し、次にSTMT11を実行しましたが、プリペアドステートメントでは大文字と小文字が区別されないため、どちらも同じように機能しました。


  1. MySQL 8.0で廃止されたオプションと変数は何ですか?

    MySQL8.0で非推奨になったオプションと変数の一部を以下に示します。 圧縮 :クライアント接続がクライアント/サーバープロトコルで圧縮を使用しているかどうかを示します。 MySQL8.0.18以降非推奨になりました。 Expire_logs_days :特定の日数が経過すると、バイナリログが削除されます。 MySQL8.0.3以降非推奨になりました。 log_syslog :エラーログをsyslogに書き込むかどうかを決定します。 MySQL8.0.2以降は非推奨になりました。 master-info-file:ソースを記憶しているファイルの場所と名前、およびソースのバイナ

  2. MySQL 8.0で導入されたオプションと変数は何ですか?

    MySQL8.0で新しく導入されたオプションと変数の一部を以下に示します。 Com_clone: これは、CLONEステートメントの数を指します。 MySQL8.0.2で追加されました。 Com_create_role: これは、使用されるCREATEROLEステートメントの数を指します。 MySQL8.0.0で追加されました。 Com_drop_role:私 tは、使用されたDROPROLEステートメントの数を示します。 MySQL8.0.0で追加されました。 Com_restart: これは、使用されたRESTARTステートメントの数を示します。 MySQL8.0.4で追