2010-06-16 104 views
1

我正在尝试使用临时表来加速我的MySQL 4.1.22标准数据库,看起来像是一个简单的操作会导致我所有类型的问题。 我的代码是下面....MySQL临时表问题

CREATE TEMPORARY TABLE nonDerivativeTransaction_temp (
    accession_number varchar(30), 
    transactionDateValue date) 
) TYPE=HEAP; 

INSERT INTO nonDerivativeTransaction_temp 
VALUES(SELECT accession_number, transactionDateValue 
      FROM nonDerivativeTransaction 
     WHERE transactionDateValue = "2010-06-15"); 

SELECT * 
    FROM nonDerivativeTransaction_temp; 

原始表(nonDerivativeTransaction)具有两个字段,accession_number(VARCHAR(30))和transactionDateValue(日期)。

显然我得到了前两个陈述的问题,但我似乎无法确定它是什么。任何帮助,将不胜感激。

+0

信息不足有意义的回答,请详细说明a)您希望什么错误信息您收到二)什么发生c)提到的所有表格的模式d)解释提到的所有查询的计划。 – MarkR 2010-06-16 13:45:50

+0

首先,请列出你得到的错误(你说你得到了前两个陈述的问题,确切地说是什么问题)。其次,什么版本的MySQL(有很多版本的4)。第三,你可能应该升级到至少5.0(最好是5.1),因为对4.x的支持在2008年或2009年结束,具体取决于版本... – ircmaxell 2010-06-16 13:47:55

回答

1

VALUES(放在INSERT INTO ... VALUES (SELECT中,它是VALUES()或SELECT,而不是两者。

通常情况下,您的这种设置会减慢速度,除非您在会话期间查询临时表,并且查询缓存关闭和/或不可行。

+0

谢谢Wrikken。原始表格有TON条目,我只需要在特定时间给定日期。我的解决方案是使用临时表来仅保存那个特定日期的那些值。 – AmyD 2010-06-16 13:54:06

+0

+1:这是一个语法错误。 @AmyD:如有疑问,请查看文档:http://dev.mysql.com/doc/refman/5.1/en/insert.html – 2010-06-16 15:51:30

0

快速表情让我怀疑,如果不匹配的括号可能是你的问题的一部分...

+0

神圣的废话!我不敢相信我把这个简单的错误当成了一个parens。 – AmyD 2010-06-16 13:55:26