2012-06-27 3 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

Спасибо! Каков синтаксис для указания уникального индекса? Я предполагаю, что ключ (jobId) делает jobId основным ключом правильно? – imperium2335

+1

KEY (column_name) делает его простым индексом, не являющимся уникальным, не первичным; PRIMARY KEY (column_name) или UNIQUE KEY (column_name) делает столбец первичным или уникальным. –

Смежные вопросы