使用临时表的问题

时间:2013-12-23 14:29:59

标签: mysql temp-tables

我在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'不存在” 关于这里有什么问题的任何线索?

2 个答案:

答案 0 :(得分:2)

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

这是什么原因?

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

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

答案 1 :(得分:0)

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

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

OR

您可以重命名该表格。

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

来源:

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的examples文件夹中导入“create_tables.sql” SRC: Source - Table-Doesn't-Exist