Code: Select all
mysql> SELECT t.table_catalog AS catalog, t.table_schema, t.table_name, "" AS owner, CASE WHEN t.engine = 'InnoDB' THEN (SELECT st.table_id FROM information_schema.INNODB_TABLES st WHERE CONCAT(t.table_schema,'/', t.table_name) = st.name) ELSE (SELECT 0) END AS id FROM information_schema.tables t;
+---------+--------------------+------------------------------------------------------+-------+------+
| catalog | TABLE_SCHEMA | TABLE_NAME | owner | id |
+---------+--------------------+------------------------------------------------------+-------+------+
| def | draft | abcatcol | | 1093 |
| def | draft | abcatedt | | 1094 |
| def | draft | abcatfmt | | 1095 |
| def | draft | abcattbl | | 1112 |
| def | draft | abcatvld | | 1096 |
| def | draft | abcß | | NULL |
| def | draft | leagues | | 1098 |
| def | draft | leaguescorehitter | | 1101 |
| def | draft | leaguescorepitcher | | 1102 |
Der Grund ist:
Code: Select all
mysql> SELECT * FROM information_schema.INNODB_TABLES st;
+----------+------------------------------------------------------------+------+--------+------------+------------+---------------+------------+--------------+--------------------+
| TABLE_ID | NAME | FLAG | N_COLS | SPACE | ROW_FORMAT | ZIP_PAGE_SIZE | SPACE_TYPE | INSTANT_COLS | TOTAL_ROW_VERSIONS |
+----------+------------------------------------------------------------+------+--------+------------+------------+---------------+------------+--------------+--------------------+
| 1089 | draft/abc@1j | 33 | 5 | 24 | Dynamic | 0 | Single | 0 | 0 |
Die MySQL-Version ist 8.0.800 und läuft unter Gentoo Linux.
Wie rufe ich die Tabellen-ID für die oben genannte Tabelle ab?
Der Computer ist mit dem Gebietsschema en_US.UTF8 eingestellt und MySQL verwendet standardmäßig alles.
Mobile version