如何循环遍历数据库的表?

2024-01-22

我试图使用以下代码循环数据库的表,但出现错误java.lang.UnsupportedOperationException。我什至尝试过cfloop query and other attributes出现错误复杂值无法转换为简单值。谁能告诉我我该如何循环这个查询?谢谢。

<cfquery name="q" datasource="datasource">
    SHOW TABLES FROM datasource
</cfquery>
<cfloop collection ="#q#" item="i">
   #q[i]#
</cfloop> 

您收到该错误是因为 cfloopcollection需要一个结构,而不是查询对象。因此出现“不支持的操作...”错误。

相反,您应该使用查询循环。生成的列名称是动态的,基于您提供的数据库名称。您可以对其进行硬编码或动态访问:

   <cfset colNames = listToArray(q.columnList)>
   <cfoutput query="q">
      <cfloop array="#colName#" index="col">
            #q[col][currentRow]#
      </cfloop>
      <br>
   </cfoutput>

也就是说,我发现使用元数据INFORMATION_SCHEMA views http://dev.mysql.com/doc/refman/5.0/en/tables-table.html。您可以像查询任何表一样查询它们。然后照常输出静态列名。

    <cfquery name="yourQueryName" ...>
       SELECT  TABLE_NAME
       FROM    INFORMATION_SCHEMA.TABLES
       WHERE   TABLE_SCHEMA = 'YourDatabaseName'
    </cfquery>

    <cfoutput query="yourQueryName">
         #TABLE_NAME# <br>
    </cfoutput>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何循环遍历数据库的表? 的相关文章

随机推荐