selecione no mysql

86

Eu sou um usuário MSSQL e agora estou convertendo meu banco de dados para MySQL. Estou escrevendo a seguinte consulta no MySQL:

select * into new_tbl from tbl

E recebo o seguinte erro

Error : Undeclared variable new_tbl

Como tal consulta deve ser escrita corretamente no MySQL?

Mandeep Singh
fonte

Respostas:

128

Use a sintaxe CREATE TABLE SELECT.

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

CREATE TABLE new_tbl SELECT * FROM orig_tbl;
Dave K
fonte
O comando SELECT INTO cria uma nova tabela e pode ser copiado os dados de um banco de dados para outro como
Shankar Regmi
3
A sintaxe correta é: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910
CREATE ... SELECT funciona, esta deve ser a resposta aceita. A palavra-chave "AS" é aparentemente opcional e SELECT INTO não funciona com MySQL.
leo
Enfatize que não cria índices!
Ivan Ivković
89

No MySQL, deve ser assim

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

Documentação MySQL

MuhammadHani
fonte
8
Diferença sutil. Neste caso, a mesa deve existir. Pois select intonão. Na verdade, acho que é um erro se isso acontecer. Portanto, esta solução deve ser precedida de instruções que duplicam o esquema da tabela.
paxdiablo
Como diz o paxdiablo, isso requer que a tabela que você está inserindo já exista. A sintaxe MSSQL que OP é usada para criar a tabela para você.
Dave K
7
Pode não ter respondido à pergunta do OP, mas felizmente era exatamente isso que eu procurava.
garyh