mysql 隐藏字段 id 事务id 回滚id怎么查询
时间: 2023-08-02 13:28:46 浏览: 278
MySQL 如何查询当前最新事务ID
在MySQL中隐藏字段是一种新特性,可以在不影响现有应用程序的情况下,向表中添加新的列。根据你的描述,似乎你想查询与隐藏字段相关的事务id和回滚id。我们可以通过以下步骤来查询:
1. 确定你想要查询的表名和隐藏字段名。假设你要查询的表名为“my_table”,隐藏字段名为“my_hidden_col”。
2. 执行以下查询语句,查看该表中的所有事务id:
```
SELECT trx_id FROM information_schema.innodb_trx;
```
3. 执行以下查询语句,查看该表中所有被回滚的事务id:
```
SELECT DISTINCT r.trx_id FROM information_schema.innodb_trx r WHERE r.trx_state = 'R';
```
4. 执行以下查询语句,查看与隐藏字段相关的事务id:
```
SELECT DISTINCT r.trx_id FROM information_schema.innodb_trx r JOIN my_table t ON r.trx_id = SUBSTRING_INDEX(t.my_hidden_col, ':', 1) WHERE r.trx_state = 'R';
```
上述查询语句中,使用了JOIN连接和SUBSTRING_INDEX函数来查找与隐藏字段相关的事务id。其中,SUBSTRING_INDEX函数用于获取隐藏字段中的事务id,':'是隐藏字段中事务id与回滚id之间的分隔符。
5. 执行以下查询语句,查看与隐藏字段相关的回滚id:
```
SELECT DISTINCT r.trx_id, r.trx_state, r.trx_started, r.trx_mysql_thread_id, r.trx_query FROM information_schema.innodb_trx r JOIN my_table t ON r.trx_id = SUBSTRING_INDEX(t.my_hidden_col, ':', 1) WHERE r.trx_state = 'R';
```
上述查询语句中,使用了JOIN连接和SUBSTRING_INDEX函数来查找与隐藏字段相关的回滚id。其中,SUBSTRING_INDEX函数用于获取隐藏字段中的事务id和回滚id,':'是事务id和回滚id之间的分隔符。查询结果包括了事务id、事务状态、事务开始时间、MySQL线程id和事务执行的SQL语句等信息。
需要注意的是,隐藏字段只能在MySQL 8.0及以上版本中使用。如果你的MySQL版本低于8.0,将无法使用隐藏字段进行查询。
阅读全文