создать таблицу из выбора, а затем изменить таблицу, добавив столбец с автоинкрементом в MySQL - PullRequest
1 голос
/ 11 января 2011

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

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

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, сообщающую, что число столбцов не соответствует значению.

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

спасибо

Ответы [ 2 ]

1 голос
/ 11 января 2011

вы должны указать имена столбцов, которые вы вставляете в temp_tb:

INSERT INTO temp_tb (stm_id, descr) (
  select stm_id,descr from tb_export
)
0 голосов
/ 11 января 2011

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

INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id> 100;

...