prepared statements 和 MySQL 使用者變數之間的相似之處是什麼?


我們知道 MySQL 使用者變數特定於使用它們的客戶端連線,並且僅在該連線持續時間記憶體在。當連線結束時,其所有使用者變數都會丟失。類似地,prepared statements 也僅在建立它的會話持續時間記憶體在,並且在建立它的會話中可見。當會話結束時,該會話的所有 prepared statements 都會被丟棄。

另一個相似之處是 prepared statements 也不區分大小寫,就像 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,兩者作用相同,因為 prepared statements 不區分大小寫。

更新於: 20-Jun-2020

86 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.