预处理语句和MySQL用户变量有哪些相似之处?

预处理语句和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,它们都起到了同样的作用,因为预处理语句是不区分大小写的。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程