2011-01-11 2 views
1

, как кратко объяснено в теме, мне нужно создать таблицу, выбрав существующее значение. То, что я хотел бы достичь, это иметь другой столбец с автоматически увеличивающимся значением.создайте таблицу из select, затем измените таблицу, добавив столбец автоматического увеличения в mysql

Это то, что я уже пробовал:

CREATE TEMPORARY TABLE temp_tb ( 
    `row_id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `stm_id` bigint(20) NOT NULL, 
    descr varchar(20) NOT NULL, 
    PRIMARY KEY (row_id) 
); 

Затем после того, как с избранным:

INSERT INTO temp_tb (
    select stm_id,descr from tb_export 
) 

я ожидал, чтобы иметь колонку ROW_ID укажи во время вставки, но я только что получил SQL синтаксиса ошибка, указывающая мне, что количество столбцов не соответствует значению.

Знаете ли вы, можно ли этого достичь?

благодаря

ответ

1

вы должны предоставить имена столбцов вы вставляете в ваш temp_tb:

INSERT INTO temp_tb (stm_id, descr) (
    select stm_id,descr from tb_export 
) 
0

Если я не ошибаюсь, то ошибка синтаксиса должен делать с синтаксисом вставки. У вас есть temp_tb, у которого есть 3 поля, все не равные нулю. Вы вставляете 2 поля в эту таблицу с помощью инструкции insert. Ссылок MySQL перечисляет синтаксис для вставки с помощью выбора, как:

вставить в tbl_temp2 (fld_id) ВЫБОР tbl_temp1.fld_order_id ОТ tbl_temp1 ГДЕ tbl_temp1.fld_order_id> 100;

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