使用mclient时,可以通过发出命令'\ d'列出数据库中的所有表。我正在使用python-monetdb包,我不知道如何实现相同。我见过像“SELECT * FROM TABLES”这样的例子。但我得到一个“表”表不存在的错误。
答案 0 :(得分:1)
在您的查询中,您需要指定您正在查找属于默认tables
架构的sys
表,或sys.tables
。返回MonetDB中所有非系统表名称的SQL查询是:
SELECT t.name FROM sys.tables t WHERE t.system=false
在Python中,它应该类似于:
import monetdb.sql
connection = monetdb.sql.connect(username='<username>', password='<password>', hostname='<hostname>', port=50000, database='<database>')
cursor = connection.cursor()
cursor.execute('SELECT t.name FROM sys.tables t WHERE t.system=false')
如果您只在特定架构中查找表,则需要扩展查询,指定架构:
SELECT t.name FROM sys.tables t WHERE t.system=false AND t.schema_id IN (SELECT s.id FROM sys.schemas s WHERE name = '<schema-name>')
其中<schema-name>
是您的架构,由单引号括起来。