2012-06-27 71 views
2

如何爲從SELECT語句創建的臨時表定義鍵?定義臨時表創建中的鍵

我:

CREATE temporary TABLE _temp_unique_parts_trading 
engine=memory AS 
    (SELECT parts_trading.enquiryref, 
      sellingcurrency, 
      jobs.id AS jobID 
    FROM parts_trading, 
      jobs 
    WHERE jobs.enquiryref = parts_trading.enquiryref 
    GROUP BY parts_trading.enquiryref) 

但我在哪裏定義鍵?

+0

之後,你是否嘗試過只用正常的關鍵定義的表? – Cylindric

+0

你是什麼意思?我已經看到表不是從已經設置了索引列的SELECT語句創建的,但不是曾經像我的那樣。 – imperium2335

+0

現在無關緊要,因爲你已經看到了Ajreal的答案,但基本上你需要完整地聲明列。 – Cylindric

回答

7

你可以做到這一點

 
CREATE temporary TABLE _temp_unique_parts_trading 
(
    enquiryref varchar(255), 
    sellingcurrency varchar(255), 
    jobID int(10), 
    key(jobId) 
) 
engine=memory AS 
    (SELECT parts_trading.enquiryref, 
      sellingcurrency, 
      jobs.id AS jobID 
    FROM parts_trading, 
      jobs 
    WHERE jobs.enquiryref = parts_trading.enquiryref 
    GROUP BY parts_trading.enquiryref) 

表結構(索引,列數據類型)基本上追加TABLE_NAME

+0

謝謝!指定唯一索引的語法是什麼?我假設key(jobId)使jobId成爲主鍵? – imperium2335

+1

KEY(column_name)使它成爲一個非唯一的非主要索引; PRIMARY KEY(column_name)或UNIQUE KEY(column_name)使列成爲主鍵或唯一鍵。 –