我正在尝试显示多个mysql表的表结构(如每个表的列列表),它匹配特定的字符串,如
SHOW CREATE TABLE TABLE_NAME LIKE '%CATEGORY%'
我这样做了,但它没有显示表的结构。
`select * from `information_schema`.`tables`
where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name'`
由于
答案 0 :(得分:0)
要获得表的完整结构,您需要查询INFORMATION_SCHEMA中的许多表,而不仅仅是TABLES。 TABLES仅包含表的属性,而不包含其列,索引或约束。
没有INFORMATION_SCHEMA表格显示CREATE TABLE
之类的完整SHOW CREATE TABLE
语句。
SHOW CREATE TABLE
只接受一个表名作为参数。
最简单的解决方案是获取与您的模式匹配的表的列表:
select table_name from `information_schema`.`tables`
where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name'
然后在循环中获取该查询的结果,并为查询返回的每个表运行SHOW CREATE TABLE DBName.<table_name>
。