準備好的語句和 MySQL 使用者變數之間的相似之處是什麼?
眾所周知,MySQL 使用者變數特定於它們所使用的客戶端連線,並且僅存在於該連線持續期間。當連線結束時,所有使用者變數都丟失。類似地,準備好的語句也僅存在於建立它的會話持續期間,並且在建立它的會話中可見。當會話結束時,該會話的所有準備好的語句都將被丟棄。
另一個相似之處是,準備好的語句與 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 語句不區分大小寫。
廣告