📜  MySQL | CONNECTION_ID( )函数(1)

📅  最后修改于: 2023-12-03 15:33:02.253000             🧑  作者: Mango

MySQL | CONNECTION_ID( )函数

简介

CONNECTION_ID()函数用来返回当前连接的(会话的)标识符。这个标识符对于每个新的连接都是唯一的,并且在连接关闭后会释放。

语法
CONNECTION_ID( )
返回值

CONNECTION_ID()函数返回值类型是整数,表示当前连接的标识符。

使用场景
在存储过程中使用

当我们需要在存储过程中获取当前连接的标识符时,可以使用CONNECTION_ID()函数来实现:

CREATE PROCEDURE `my_proc`()  
BEGIN  
    DECLARE conn_id INT DEFAULT CONNECTION_ID();  
    SELECT conn_id;  
END;
在查询日志中使用

当我们开启了MySQL的查询日志功能时,可以记录每个查询的详细信息,包括执行的时间、用户、HOST和SQL语句等等。如果我们需要记录每个查询对应的连接标识符,就可以使用CONNECTION_ID()函数来获取。

例如,我们可以在my.cnf配置文件中添加以下内容,开启查询日志功能:

log-output=FILE 
general-log=1 
general_log_file=/var/log/mysql/mysql_query.log

然后在查询日志中,可以看到记录了每个SQL执行时的连接标识符:

1669 Query    SELECT * FROM my_table;
1669 Quit
注意事项
  • CONNECTION_ID()函数只能用于当前的连接,不能用于其他连接;
  • CONNECTION_ID()函数返回的标识符在连接关闭后会被释放,不能用于后续的连接;
  • CONNECTION_ID()函数不能作为参数传递给其他函数或者存储过程,只能用于查询和变量赋值等场景。
总结

CONNECTION_ID()函数是MySQL内置的函数之一,用于获取当前连接的(会话的)标识符。我们可以在存储过程、查询日志等场景中使用,以满足不同的需求。