MySQL создает временную таблицу с идентификатором auto_increment и выбирает запрос - PullRequest
8 голосов
/ 26 января 2012

хотите создать временную таблицу с полем auto_increment плюс поле, которое нужно выбрать из другой таблицы.

Вот что у меня есть (не работает)

CREATE TEMPORARY TABLE tmp  (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
(SELECT valueName AS valueName
FROM sometable
WHERE sometable.somevalue='00'));

они работают сами по себе, но могут получить правильный синтаксис для выполнения обоих действий

CREATE TEMPORARY TABLE tmp  (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)

CREATE TEMPORARY TABLE tmp AS SELECT valueName AS valueName FROM sometable
WHERE sometable.somevalue='00';

Ответы [ 2 ]

19 голосов
/ 26 января 2012

Я думаю, что вы, возможно, пытаетесь выполнить первый случай, описанный здесь:

http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html

.. который для вашего примера будет выглядеть так:

CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) 
SELECT valueName AS valueName FROM sometable
WHERE sometable.somevalue='00';

.. так что это могут быть просто парни в неправильных местах, которые укусили вас с первой попытки.

13 голосов
/ 26 января 2012
CREATE TEMPORARY TABLE tmp (
    id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    valueName  varchar(16) // whatever type it should be
);

INSERT INTO tmp (valueName) SELECT valueName FROM sometable WHERE ...

Соответствующие документы здесь: http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...