【发布时间】:2017-03-05 11:06:18
【问题描述】:
我被要求创建一个程序,列出数据库中的 TABLE_NAME、TABLE_ROWS、COLUMN_NAME 和 DATA_TYPE。
问题是,我只能使用 INFORMATION_SCHEMA.COLUMNS 选择 column_name,而我可以使用 INFORMATION_SCHEMA.table 选择 table_rows。我试图加入两者但没有成功。
另外,我需要过滤 CHARACTER_MAXIMUM_LENGTH > 5 的 VARCHAR 列 ,但如果我去“WHERE CHARACTER_MAXIMUM_LENGTH > 5”,它不仅会得到 varchar,还会得到 char data_types。
编辑 这是我到目前为止所拥有的
SELECT c.table_name, c.column_name, c.data_type, t.table_rows, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.columns c
JOIN information_schema.tables t ON c.table_name = t.table_name
WHERE t.table_schema = 'SAMPLE' AND CHARACTER_MAXIMUM_LENGTH > 5;
我认为我得到了正确的连接,但我仍然不确定如何让“CHARACTER_MAXIMUN_LENGHT > 5”只过滤 varchar 数据类型...
有什么想法吗?
【问题讨论】:
-
“我尝试加入两者但没有成功” - 请显示无效的查询。
-
完成了,对不起,伙计。编辑了问题