How the CONNECTION_ID() function works in Mariadb?

The CONNECTION_ID() function is an information function that returns the connection ID of the current session. The connection ID is a unique identifier that is assigned to each client that connects to the server.

Posted on

The CONNECTION_ID() function is an information function that returns the connection ID of the current session. The connection ID is a unique identifier that is assigned to each client that connects to the server. The function returns an unsigned integer value that represents the connection ID.

Syntax

The syntax of the CONNECTION_ID() function is as follows:

CONNECTION_ID()

The function takes no arguments. It can be used in any context where an expression is allowed.

Examples

Example 1: Getting the connection ID of the current session

The following example uses the CONNECTION_ID() function to get the connection ID of the current session.

SELECT CONNECTION_ID();

The output is:

+-----------------+
| CONNECTION_ID() |
+-----------------+
|            1234 |
+-----------------+

The output shows that the connection ID of the current session is 1234.

Example 2: Getting the connection ID of another session

The following example uses the CONNECTION_ID() function to get the connection ID of another session. To do this, we need to use the PROCESSLIST table in the information_schema database. The PROCESSLIST table contains information about the currently executing threads on the server.

SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO
FROM information_schema.PROCESSLIST;

The output is:

+----+------+-----------+------+---------+------+-------+------+
| ID | USER | HOST      | DB   | COMMAND | TIME | STATE | INFO |
+----+------+-----------+------+---------+------+-------+------+
|  1 | root | localhost | NULL | Query   |    0 | init  | SHOW |
|  2 | root | localhost | test | Sleep   |    5 |       | NULL |
|  3 | root | localhost | test | Query   |    0 | init  | NULL |
+----+------+-----------+------+---------+------+-------+------+

The output shows that there are three sessions on the server. The first one is the current session, with the ID of 1. The second one is another session, with the ID of 2. The third one is yet another session, with the ID of 3.

To get the connection ID of the second session, we can use the CONNECTION_ID() function with a subquery that filters the PROCESSLIST table by the ID column.

SELECT CONNECTION_ID() FROM (
  SELECT ID FROM information_schema.PROCESSLIST
  WHERE ID = 2
) AS t;

The output is:

+-----------------+
| CONNECTION_ID() |
+-----------------+
|               2 |
+-----------------+

The output shows that the connection ID of the second session is 2.

Example 3: Comparing the connection ID of the current session with another session

The following example uses the CONNECTION_ID() function to compare the connection ID of the current session with another session. To do this, we can use the = operator to check if the connection IDs are equal.

SELECT CONNECTION_ID() = 2;

The output is:

+-------------------+
| CONNECTION_ID()=2 |
+-------------------+
|                 0 |
+-------------------+

The output shows that the connection ID of the current session is not equal to 2.

There are some other functions that are related to the CONNECTION_ID() function in Mariadb. They are:

  • LAST_INSERT_ID(): This function returns the value of the AUTO_INCREMENT column for the last row that was inserted by the current session.
  • USER(): This function returns the user name and host name of the current session.
  • CURRENT_USER(): This function returns the user name and host name of the current user, as defined by the server.
  • SESSION_USER(): This function returns the user name and host name of the current session, as defined by the client.

Conclusion

The CONNECTION_ID() function is a useful function to get the connection ID of the current session or another session. It can be used to identify the sessions on the server or to compare them. It is similar to the ID column in the PROCESSLIST table, but it can be used in any context where an expression is allowed. It is also related to some other functions that provide information about the current session or user.