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?

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;

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.