2016-04-11 3 views
3

У меня есть временная таблица, которую я создал, чтобы точно соответствовать существующей таблице.Неизвестный столбец временной таблицы в списке полей

create temporary table all_plants_temp SELECT * from all_plants; 

Целью является внесение любых изменений во временную таблицу all_plants_temp при необходимости в исходную таблицу. Для этого я пытаюсь обновить исходную таблицу и установить ее столбцы, равные столбцам временной таблицы.

update all_plants set all_plants.symbol = all_plants_temp.symbol...(followed by the other columns)...; 

Делать это дает мне следующую ошибку:

Error Code: 1054. Unknown column 'all_plants_temp.symbol' in 'field list' 

Я попытался несколько неудачных вариантов этого кода. Поскольку я все еще новичок, я думаю, что у меня может возникнуть концептуальное недоразумение, но, несмотря на все попытки поиска, я не могу найти свою ошибку. Любая помощь будет оценена по достоинству.

EDIT: Я забыл упомянуть, что следующий запрос работает

select symbol from all_plants_temp; 
+0

Это не выглядит, как вы создали таблица temp правильно. Вы должны были использовать 'CREATE TABLE all_plants_temp LIKE all_plants', затем' INSERT all_plants_temp SELECT * FROM all_plants' – WillardSolutions

+0

вы установили надлежащее состояние в разделе 'where' ??? возможно, существует несколько совпадающих записей. – Mahmoud

ответ

2

Вы можете сделать это с помощью DROP и CREATE таблицы снова что-то, как показано ниже:

drop table all_plants; 

create table all_plants SELECT * from all_plants_temp; 
+0

это нехорошее решение, когда у вас огромное количество записей в таблице, и некоторые из них были изменены с момента последнего обновления. – Mahmoud

+0

Спасибо! Это работает чудесно и намного быстрее, чем я ожидал. У вас есть идея, почему мой исходный код испорчен? – squared

+0

@squared рад узнать, что он вам помогает. Вы можете перенести этот ответ и принять его, нажав кнопку tic. Как бы то ни было, я не знаю, почему ваш старый не работает. Я думаю, что-то проблема в вашем синтаксисе. –

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