我被要求创建一个PROCEDURE,其中列出了数据库中的表名、表行、列名和数据类型。
问题是,我只能使用INFORMATION_SCHEMA.COLUMNS来选择column_name,而可以使用INFORMATION_SCHEMA. table来选择table_rows。我尝试联接这两者,但没有成功。
另外,我需要过滤CHARACTER_MAXIMUM_LENGTH〉5的VARCHAR列,但是如果我选择“WHERE CHARACTER_MAXIMUM_LENGTH〉5”,它将不仅得到varchar,还得到字符数据类型。
这是我目前掌握的情况
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数据类型...
有什么想法吗?
1条答案
按热度按时间ljsrvy3e1#
从条件中排除除
varchar
之外的所有数据类型: