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?

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;

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.