2010-06-16 106 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