2013-05-29 5 views
40

Я являюсь пользователем MSSQL, и теперь я конвертирую свою базу данных в MySQL. Я пишу следующий запрос в MySQL:select in in mysql

select * into new_tbl from tbl 

И я получаю следующую ошибку

Error : Undeclared variable new_tbl 

Как такой запрос должен быть правильно записанным в MySQL?

ответ

69

Используйте CREATE TABLE SELECT, синтаксис.

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

CREATE TABLE new_tbl SELECT * FROM orig_tbl; 
+0

Команда SELECT INTO создает новую таблицу и может копировать данные из одной базы данных в другую как –

+1

Исправлен синтаксис: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl; – csname1910

55

В MySQL, он должен быть, как этот

INSERT INTO this_table_archive (col1, col2, ..., coln) 
SELECT col1, col2, ..., coln 
FROM this_table 
WHERE entry_date < '2011-01-01 00:00:00'; 

MySQL Documentation

+4

Тонкое различие. В этом случае таблица должна существовать. Для 'select in', это не так. На самом деле, я думаю, что это ошибка, если это так. Поэтому это решение должно быть предварено с помощью операторов, которые дублируют схему таблицы. – paxdiablo

+0

Как говорит paxdiablo, для этого требуется, чтобы таблица, в которую вы вставляете, уже существует. Синтаксис MSSQL, используемый OP для создания таблицы для вас. –

+5

Возможно, я не ответил на вопрос OP, но, к счастью, это именно то, что я искал. – garyh