InnoDB:在现有 table 中查找聚簇索引
InnoDB: Find clustered index in existing table
有没有办法明确确定现有 InnoDB 中的聚簇索引 table。我知道文档中列出的确定聚簇索引的规则,但我想知道是否有办法在现有 table.
中明确检查它
如您所见,InnoDB tables 始终使用 PRIMARY KEY 或第一个非 NULL UNIQUE KEY 作为它们的聚集索引。
如果 table 两者都没有,它会生成自己的聚簇索引,并将其称为 'GEN_CLUST_INDEX'。
mysql> create table test.testy ( i int ); -- no eligible clustered index
mysql> select t.name as table_name, i.name as index_name
from information_schema.innodb_sys_tables t
join information_schema.innodb_sys_indexes i using (table_id)
where i.name = 'GEN_CLUST_INDEX';
+------------+-----------------+
| table_name | index_name |
+------------+-----------------+
| test/testy | GEN_CLUST_INDEX |
+------------+-----------------+
有没有办法明确确定现有 InnoDB 中的聚簇索引 table。我知道文档中列出的确定聚簇索引的规则,但我想知道是否有办法在现有 table.
中明确检查它如您所见,InnoDB tables 始终使用 PRIMARY KEY 或第一个非 NULL UNIQUE KEY 作为它们的聚集索引。
如果 table 两者都没有,它会生成自己的聚簇索引,并将其称为 'GEN_CLUST_INDEX'。
mysql> create table test.testy ( i int ); -- no eligible clustered index
mysql> select t.name as table_name, i.name as index_name
from information_schema.innodb_sys_tables t
join information_schema.innodb_sys_indexes i using (table_id)
where i.name = 'GEN_CLUST_INDEX';
+------------+-----------------+
| table_name | index_name |
+------------+-----------------+
| test/testy | GEN_CLUST_INDEX |
+------------+-----------------+