mysql - Mysql从information_schema获取错误信息
问题描述
在 Linux/Lucee 和 Coldfusion/Mysql 中编写。我的系统中有几个数据库,有很多表重叠。我有一个程序可以在每个数据库中将一个字段添加到给定的表中,比如活动。当然我不想改变一个不存在的表,所以我正在检查以确保表在那里。
最简单的方法是转到数据库并使用“显示像'Activity'这样的表”。为此,我在 ColdFusion 中使用了属于该数据库的数据源。但是,当我尝试这样做时,即使该表存在,我也得到了零个表。
<cfquery name = 'tbl' datasource = '#thedatasource#'>
show tables like 'Activity'
</cfquery>
此查询的记录计数为零。然后我尝试使用信息模式并通过这个测试程序获得了更好的结果:
<cfquery name = 'dblist' datasource = 'Moxart'>
select MoxcoId from Moxco
</cfquery>
<cfloop query = 'dblist'>
<cfoutput>
<cfquery name = 'tbl' datasource = 'Moxart'>
select table_schema,table_name from information_schema.tables
where table_schema = '#MoxcoId#' AND table_name = 'Activity'
</cfquery>
<cfdump var = '#tbl#'>
</cfoutput>
</cfloop>
这给出了完全正确的答案。但是,当我将相同的代码放入实际程序时,它一直返回零记录。真正的程序相当长,但大部分开始都是从以前的表格中获取信息。从线
<cfquery name = 'dblist' datasource = 'Moxart'>
唯一的区别是添加了此部分,因为 #MoxcoId# 并不总是架构名称。在这种情况下,变量#mmox# 为空白,因此不添加任何内容。
<cfif #MoxcoId# EQ 'Moxart'>
<cfset pref = '#mmox#Moxware'>
<cfelse>
<cfset pref = '#mmox##MoxcoId#'>
</cfif>
当我对查询“tbl”进行转储时,它显示检索到零记录,即使代码看起来完全正确。
我很困惑。我的代码一定有问题,但我就是看不到。如果有人可以提出一些建议,我将不胜感激。
解决方案
推荐阅读
- c# - 覆盖重载 C#
- html - 剃刀语法值未在 TextBoxFor 中设置
- python - 如何解决此错误:AttributeError:'NoneType' 对象没有属性'_inbound_nodes'?
- javascript - 如何将 0 传递给 TypeScript 可选参数?
- mysql - 在 Superset 时间列中使用整数年份
- mysql - 带有简单游标的简单存储过程不会编译
- python-3.x - 如何循环python游戏但也让它更干净?
- docker - 错误:不允许附加属性 db-migrator
- node.js - 为什么在 Sequelize 中创建关联模型时使用大写键?
- java - 如何使用 nanoTime 准确预测时间?