问题标签 [mysql-error-1146]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
931 浏览

mysql - MySQL:查询以获取使用所有给定成分的食谱

我有以下简化表格:

我想做一个查询,返回包含鸡肉和奶油的食谱的所有 id。

我努力了

这给了我:“错误 1248(42000):每个派生表都必须有自己的别名” ,并且可能也是错误的。

接下来我尝试了

给出“错误1146(42S02):表'recipedb.t'不存在”

我想避免创建临时表,包括使用 ENGINE=MEMORY。

0 投票
26 回答
298027 浏览

mysql - Mysql 1050 错误“表已存在”,实际上它不存在

我正在添加此表:

我得到一个 1050 “表已经存在”

但该表不存在。有任何想法吗?

编辑:更多细节,因为每个人似乎都不相信我:)

产量:

1146 - 表 'gunzfact_vbforumdb.contenttype' 不存在

产量:

1050 - 表“内容类型”已存在

0 投票
1 回答
188 浏览

php - 从服务器端捕获错误

我正在从我的服务器获取 json 数据以将它们显示为表格。

我可以以某种方式将 mysql 错误与 json/ajax 错误端分开吗?目前我得到:无效的 JSON:SQLSTATE[42S02]:找不到基表或视图:1146 表“simover.simulation”不存在{} 我可以自定义 jquery 抛出的消息吗?谢谢阿曼。

编辑

可以使用xhr.responceTxt而不是throwedError

0 投票
1 回答
429 浏览

php - 多租户 - 预先或根据需要创建表?

我目前正在开发一个 SaaS 类型的应用程序,对于多租户,我已经为每个用户确定了一个数据库,每个数据库都包含用户有权使用的功能所需的所有表(已付费)。该应用程序旨在捕获数据(例如网络分析)并将其呈现给用户。该设计应该能够扩展到数以万计的用户(最终)。

一个可行的解决方案是在应用程序检测到需要它们时“动态”创建表吗?或者我应该在特定用户数据库中创建所有最终需要的表,只要我知道它们可能需要(用户升级、新功能等)?

我目前的架构允许我做这样的事情:

我希望能够灵活地添加功能,而不必遍历所有用户数据库来添加表,因此像上面这样的设置将帮助我实现这一目标。但我不确定我是否遗漏了一些让我日后后悔的决定?

0 投票
2 回答
1940 浏览

php - PDO 拒绝在多个数据库之间切换!

请我对 PDO 很陌生,而不是 PHP 的新手。我目前正在从事一个涉及到许多数据库连接的项目:MySQL、MSSQL 和 Oracle。所以我使用下面的类和 PDO 进行连接。类代码如下。

class db {

}

这是该类所需的 vars 包含文件,我使用了一个数组,因为我觉得这样,随着时间的推移,非程序员可以轻松地将新数据库添加到 vars 文件中。当然,在这里,我已经更改了 var 文件的值。

现在的问题是,每当我连接到一个数据库并尝试在另一个数据库上运行我的查询时,PDO 都会一直记住旧数据库。但如果我独立运行任一查询,一切都很好。有人可以帮忙解决这个问题,或者提出更好的方法吗?:(

例如

include('./includes/db.class.php'); try { $result = DB::getDB("mysql", 3)->query("SELECT myrow FROM mytable");

在这种情况下,PDO 将继续检查 DATABASE db1name 以获取 TABLE yourtable,而不是检查 DATABASE db3name。所以 PDO 会抛出错误:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db1name.yourtable' doesn't exist

0 投票
1 回答
478 浏览

mysql - 试图从 Doctrine 模型生成表并得到 MySQL 错误

Doctrine_Core::createTablesFromModels() 失败并出现以下错误:

  1. Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'newmexicocreates.address_type' doesn't exist. Failing Query: "SELECT a.id AS a__id, a.title AS a__title FROM address_type a"' in /[removed]/lib/doctrine/Doctrine/Connection.php:1082
  2. Stack trace:
  3. #0 /[removed]/lib/doctrine/Doctrine/Connection.php(1025): Doctrine_Connection->rethrowException(Object(PDOException), Object(Doctrine_Connection_Mysql), 'SELECT a.id...')
  4. #1 /[removed]/lib/doctrine/Doctrine/Query/Abstract.php(976): Doctrine_Connection->execute('SELECT a.id...', Array)
  5. #2 /[removed]/lib/doctrine/Doctrine/Query/Abstract.php(1026): Doctrine_Query_Abstract->_execute(Array)
  6. #3 /[removed]/app/models/behaviors/IdAsConstant.php(16): Doctrine_Query_Abstract->execute()
  7. #4 /[removed]/ in /[removed]/lib/doctrine/Doctrine/Connection.php on line 1082

我认为这种情况正在发生,因为它看到了模型中定义的关系并试图创建约束。但他们正在处理的表尚未创建。我在这个假设中正确吗?

有什么我可以尝试解决的吗?

0 投票
1 回答
8345 浏览

mysql - MySQL 将表名传递给游标选择

我希望该过程在 select 语句中采用参数answertablepartid,但是当我调用它时,它不会将参数 answertable 替换为值

通话call updateTotalScores('quiz_participation', 'quiz_answer', 1)

返回错误:1146 - Table 'quizdb.answertable' doesn't exist

传递 id 有效,但传递表名不能,所以我如何将表名传递给 select in

整个过程:

为了完整性

表名不能传递给 MySql 游标,至少现在还不能

http://forge.mysql.com/worklog/task.php?id=3433

下面的答案(修正了一下)

0 投票
2 回答
1653 浏览

php - CodeIgniter 和 Doctrine:未找到基表或视图

我几乎逐字逐句地关注文档,除了我认为是更正的两项调整。

第一次调整:我消除了DIRECTORY_SEPARATOR冗余system/application/doctrine.php

生成的路径看起来是正确的。

第二次调整:生成的模型(例如models/User.php)似乎没有加载扩展的基本模型Doctrine_Record,所以我require()向每个模型添加了一个显式调用,如下所示:

所以,我目前的问题:第一次构建表时:

Doctrine 似乎很乐意清空表、删除表、删除数据库和创建数据库,但我不明白为什么它不会创建表。它清楚地说Created tables successfully,但SHOW TABLES;返回“在数据库中找不到表”。

Doctrine 使用的是与我相同的 MySQL 用户,它具有ALL PRIVILEGES.

为什么 Doctrine 不能创建表格的任何想法?希望我只是盲目和/或愚蠢。

或者,我有没有办法根据我的 yaml 模式或模型生成一个 SQL CREATE 语句文件,我可以自己运行来调试这个问题?

0 投票
1 回答
786 浏览

mysql - MySQL 从另一个存储过程调用存储过程

抱歉,POST 很长:我是否可以从 MySQL 中的另一个存储过程调用存储过程。例如:我有两个表(test 和 testcomp):结构如下:

-- 表的表结构test

-- 表的表结构testcomp

现在我填充了测试表:

和表testcomp:

现在,如果我有 2 个程序:

第一个 QryTestComp:

上面的一个作为刚刚查询的普通表:但是第二个 QryTestPlac,它调用了上面的过程:

带有一个错误:

它说错误:1146(42S01):表'mydb.qrytestcomp'不存在。它不是一个表,而是一个过程。

请指点。

问候,

——钟吉

0 投票
10 回答
76388 浏览

php - MySQL表不存在错误,但它确实存在

有谁知道1146: Table '<database>.<table>' doesn't exist当您的表确实存在时,在什么情况下您会收到错误?

我在 5 台服务器上使用相同的代码,只有我最近租用的一台显示此错误,所以我怀疑它可能是某种设置或安装错误。我可以从命令行执行我的 sql 语句就好了。显然,我也可以从命令行查看表格。建立连接时(我使用的是 mysqli,顺便说一句),我没有收到任何连接错误。

任何帮助,将不胜感激。

确切查询: