请问执行完insert命令后,生成的key的值怎么可以查的到?

如果我添加了一个表,加了几个数据,这些数据的key值怎么可以查的到?
1,添加表;
CREATE TABLE temptable ( ID int PRIMARY KEY,
area VARCHAR(512),
temperature float,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX(area),
UNIQUE(created_at) -----假设这里的时间是唯一的
);
mysql> select * from temptable;

| ID | area | temperature | created_at |
±—±-----±------------±--------------------+
| 1 | A1 | 25 | 2021-08-19 14:52:07 |
| 2 | A2 | 26 | 2021-08-19 14:52:47 |
| 3 | A1 | 27 | 2021-08-19 14:53:00 |
| 4 | A12 | 29 | 2021-08-19 14:53:23 |
| 5 | A2 | 30 | 2021-08-19 14:53:36 |
±—±-----±------------±--------------------+

2,查key信息,我就知道这个可以查到主key的信息,
我是用这个查主key信息:
curl “http://10.xxx.xxx.xxx:10080/mvcc/key/test/temptable/2

但是其他index的key信息不知道怎么查??

Get MVCC Information of a specified index key
https://github.com/pingcap/tidb/blob/master/docs/tidb_http_api.md

如果是查询 index key 的 mvcc 信息同样可以通过使用 TiDB API 的方式进行,如下:

以上面的表为列,我们要查询 area 值为 A1 的索引 key 的 MVCC 版本信息,那么可以使用下面的命令,因为使用的 int 作为 pk,所以此处 handel 为 1:

并且可以使用 mok 反向解析该 key 对应的 value,如下:

https://github.com/disksing/mok/releases

@zhenjiaogao,@Lucien
这个材料太好了。编码这块我还要再研究下。另外我在用这些命令查询后,
又出现了不理解的情况:
1)我test数据库下有三个表(全是t开头的)
mysql> show tables;
±---------------+
| Tables_in_test |
±---------------+
| t |
| temptable |
| ttt |
±---------------+
这三表所在的t和temptable是在一个region2049里面,ttt是个分区表,ttt的第三个分区和
t和temptable在一个region2049里面。
2)我的疑问是:这个table_name和table_id不应该是
和用户配置的数据表对应的?不是应该唯一么??现在相当于这三个表在内部的table_name和、table_id都一样了?

3)region查询的信息如下:
curl http://10.xx.0.xx:10080/regions/2049
{
“start_key”: “dIAAAAAAAADs”,
“end_key”: null,
“start_key_hex”: “7480000000000000ec”,
“end_key_hex”: “”,
“region_id”: 2049,
“frames”: [
{
“db_name”: “test”,
“table_name”: “ttt(p3)”,
“table_id”: 236,
“is_record”: false,
“index_name”: “idx”,
“index_id”: 1
},
{
“db_name”: “test”,
“table_name”: “ttt(p3)”,
“table_id”: 236,
“is_record”: true
}
]

可能是当时信息还没完全刷新好,所以查出来还不是准确的,当时查的时候
应该还没那几个表的信息。 经过一段时间,现在查发现region重新合并了。
信息也正确了。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。