seleccionar en mysql

86

Soy un usuario de MSSQL y ahora estoy convirtiendo mi base de datos a MySQL. Estoy escribiendo la siguiente consulta en MySQL:

select * into new_tbl from tbl

Y me sale el siguiente error

Error : Undeclared variable new_tbl

¿Cómo se debe escribir correctamente una consulta de este tipo en MySQL?

Mandeep Singh
fuente

Respuestas:

128

Utilice la sintaxis 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
fuente
El comando SELECT INTO crea una nueva tabla y se pueden copiar datos de una base de datos a otra como
Shankar Regmi
3
La sintaxis correcta es: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910
CREATE ... SELECT funciona, esta debería ser la respuesta aceptada. La palabra clave "AS" es aparentemente opcional y SELECT INTO no funciona con MySQL.
leo
¡Enfatice que no crea índices!
Ivan Ivković
89

En MySQL, debería ser así

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

Documentación de MySQL

MuhammadHani
fuente
8
Diferencia sutil. En este caso, la mesa debe existir. Porque select intono es así. De hecho, creo que es un error si lo hace. Por lo tanto, esta solución debe ir precedida de declaraciones que dupliquen el esquema de la tabla.
paxdiablo
Como dice paxdiablo, esto requiere que la tabla en la que está insertando ya exista. La sintaxis de MSSQL con la que OP se utiliza crea la tabla para usted.
Dave K
7
Puede que no haya respondido a la pregunta del OP, pero afortunadamente esto era exactamente lo que estaba buscando.
garyh