Если я правильно понимаю, вам нужно увидеть столбцы и типы таблиц, которые вы (или какой-то другой пользователь) определили как meta
?
Есть как минимум два способа сделать это:
Сначала (как @GMB упомянул в их ответ ) вы можете запросить каталог SQL: https://www.monetdb.org/Documentation/SQLcatalog/TablesColumns
SELECT * FROM sys.tables WHERE NAME='meta';
+------+------+-----------+-------+------+--------+---------------+--------+-----------+
| id | name | schema_id | query | type | system | commit_action | access | temporary |
+======+======+===========+=======+======+========+===============+========+===========+
| 9098 | meta | 2000 | null | 0 | false | 0 | 0 | 0 |
+------+------+-----------+-------+------+--------+---------------+--------+-----------+
1 tuple
Таким образом, вы получите всю необходимую информацию о таблице meta
. Нас больше всего интересует значение столбца id
, поскольку он однозначно идентифицирует таблицу.
(обратите внимание, что этот идентификатор, вероятно, будет отличаться в вашей системе)
После того, как мы получим этоинформация, которую мы можем запросить в таблице столбцов с этим идентификатором таблицы: SELECT * FROM sys.columns WHERE table_id=9098;
+------+------+------+-------------+------------+----------+---------+-------+--------+---------+
| id | name | type | type_digits | type_scale | table_id | default | null | number | storage |
+======+======+======+=============+============+==========+=========+=======+========+=========+
| 9096 | i | int | 32 | 0 | 9098 | null | true | 0 | null |
| 9097 | j | clob | 0 | 0 | 9098 | null | true | 1 | null |
+------+------+------+-------------+------------+----------+---------+-------+--------+---------+
2 tuples
Поскольку вас интересуют только имена и типы столбцов, вы можете изменить этот запрос следующим образом:
SELECT name, type FROM sys.columns WHERE table_id=9098;
+------+------+
| name | type |
+======+======+
| i | int |
| j | clob |
+------+------+
2 tuples
Вы можете объединить два запроса выше с объединением:
SELECT col.name, col.type FROM sys.tables as tab JOIN sys.columns as col ON tab.id=col.table_id WHERE tab.name='meta';
+------+------+
| name | type |
+======+======+
| i | int |
| j | clob |
+------+------+
2 tuples
Второй и предпочтительный способполучить эту информацию, если вы используете утилиту mclient MonetDB, используя мета-команду description mclient. При использовании без аргументов он представляет список таблиц, которые были определены в текущей базе данных, и когда ему присваивается имя таблицы, он печатает определение SQL:
sql>\d
TABLE sys.data
TABLE sys.meta
sql>\d sys.meta
CREATE TABLE "sys"."meta" (
"i" INTEGER,
"j" CHARACTER LARGE OBJECT
);
. Вы можете использовать \?
мета-команда, чтобы увидеть список всех мета-команд в mclient:
sql>\?
\? - show this message
\<file - read input from file
\>file - save response in file, or stdout if no file is given
\|cmd - pipe result to process, or stop when no command is given
\history - show the readline history
\help - synopsis of the SQL syntax
\D table - dumps the table, or the complete database if none given.
\d[Stvsfn]+ [obj] - list database objects, or describe if obj given
\A - enable auto commit
\a - disable auto commit
\e - echo the query in sql formatting mode
\t - set the timer {none,clock,performance} (none is default)
\f - format using renderer {csv,tab,raw,sql,xml,trash,rowcount,expanded,sam}
\w# - set maximal page width (-1=unlimited, 0=terminal width, >0=limit to num)
\r# - set maximum rows per page (-1=raw)
\L file - save client-server interaction
\X - trace mclient code
\q - terminate session and quit mclient