【问题标题】:Issue working with temporary table使用临时表的问题
【发布时间】:2014-01-11 18:58:58
【问题描述】:

我在 phpMyAdmin 中输入以下内容:

CREATE TEMPORARY TABLE test_table (
 item1 VARCHAR(50) NOT NULL
 , item2 DECIMAL(12,2) NOT NULL DEFAULT 0.00
 , item3 DECIMAL(7,2) NOT NULL DEFAULT 0.00
 , item4 INT UNSIGNED NOT NULL DEFAULT 0);

表创建成功。

然后我在 phpMyAdmin 中也输入以下语句:

INSERT INTO test_table
 (item1, item2, item3, item4)
 VALUES
 ('lentils', 99.00, 82, 8);

我收到了; “#1146 - 表 'mydatabase.test_table' 不存在” 关于这里出了什么问题的任何线索?

【问题讨论】:

  • 我在 MySQL 5.6.11 上的临时表中遇到了同样奇怪的错误。 2年后运气好吗?
  • 正如Deif所指出的,临时表只存在于当前查询中。

标签: mysql temp-tables


【解决方案1】:

临时表只存在于当前的 PhpMyAdmin 查询中,因为它会在查询执行后关闭您的数据库会话。如果您分别执行这两个查询,那么您将收到此错误,因为 MySQL 数据库将在第一个查询完成执行后立即删除临时表。

这是什么原因?

原因是您可以创建函数或过程来创建这些临时表,而不会阻塞数据库,因为一旦函数或过程完成执行,它们将被自动删除。

解决方案是在一个查询中执行所有内容,或者只使用普通表。

【讨论】:

  • 感谢您提供关键信息 - 该表仅针对当前查询存在。我的想法是这张桌子在整个会议期间都存在。我一直想在另一个安装上尝试这个,因为我认为这是一个错误。刚刚尝试了另外两个安装和相同的结果。好的,所以现在我需要编写一些程序......干杯。
  • 我不知道为什么这没有受到挑战,但声明“临时表仅针对当前查询存在”。是不真实的,它会持续当前的会话。请参阅dev.mysql.com/doc/refman/5.7/en/…,其中说:“临时表仅对当前会话可见,并在会话关闭时自动删除。”因信息不正确而被否决。
  • 是的,但我的意思是 phpmyadmin 查询(因为那是问题)而不是 MySql 查询,因为 phpmyadmin 在执行查询后关闭了数据库连接。不过,我会在答案中澄清这一点。
  • Ping @eniment 因为 Deif 没有
【解决方案2】:

我一直在为您的问题寻找一些答案,显然,这是某种错误。

您需要删除表,重新启动 MySQL 服务并重新构建表。

您可以重命名表格。

(这为许多其他人修复了它。)

来源:

Bug? #1146 - Table 'xxx.xxxxx' doesn't exist

SQL - AS - table doesn't exist - 1146

http://bytes.com/topic/mysql/answers/706253-table-doesnt-exist-but-im-sure-does

http://mysql-tools.com/articles/mysql/48-table-mysqlproc-doesnt-exist.html

http://ubuntuforums.org/showthread.php?t=2095602

编辑:

可能是您的 MySQL 版本“过时”。尝试更新。

如果您的数据库在 PhpMyAdmin 中,请使用 phpMyAdmin 从 phpMyAdmin 的示例文件夹中导入“create_tables.sql” SRC: Source - Table-Doesn't-Exist

【讨论】:

  • 我正在运行版本 5.6.11,所以它是相当新的。我尝试导入 create_tables.sql 并没有解决问题,即使在重新启动后也是如此。有趣的是,如果我在 phpMyAdmin 的同一个命令窗口中运行上述两个查询,那么它可以工作。我认为临时表应该存在于整个连接中。
  • 好的,我删除了数据库,重新创建然后重新启动了 mySQL 服务。仍然没有运气,并且得到完全相同的错误。谢谢,我确实检查了您列出的链接,但是我的问题是插入到 TEMPORARY 表中,列出的所有这些问题都是与普通表相关的查询。看起来这是其他用户遇到的一个单独问题。接下来,我将尝试更新,即使它只是一个小升级,然后我将尝试在另一台机器上进行另一个安装。在此期间有人有任何进一步的想法吗?
  • @riverrunner 啊,很抱歉我没能帮助你 Riverrunner。老实说,我从来没有遇到过这个错误……而且我发现的所有结果都在我的答案中。祝你好运!
  • 感谢@Paramone,如果我找到可以解决问题的方法,我会在这里发布。
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 2020-11-30
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多