2008-09-25 29 views
9

¿Qué comando SQL es copiar una tabla de una base de datos a otra? Estoy usando MySQL y tengo dos bases de datos x y y. Supongamos que tengo una tabla en x llamada a y necesito copiar esa tabla a la base de datos. Lo siento si la pregunta es demasiado novato.Comando SQL para copiar la tabla

Gracias.

+1

En general, hay mejores formas de hacerlo que con SQL. La mayoría de DBMS 'proporcionará la facilidad para copiar tablas o, en el peor de los casos, descargar y volver a cargar los datos. – paxdiablo

Respuesta

8

Si sus dos bases de datos están separadas, lo más simple sería crear un volcado de su tabla y cargarlo en la segunda base de datos. Consulte el manual de su base de datos para ver cómo se puede realizar un volcado.

contrario, puede utilizar la siguiente sintaxis (para MySQL)

INSERT INTO database_b.table (SELECT * FROM database_a.table) 
8

Si no existe la tabla de destino ....

CREATE TABLE dest_table AS (SELECT * FROM source_table); 

Si la tabla de destino existe

INSERT INTO dest_table (SELECT * FROM source_table); 

Advertencia: Sólo probado en Oracle

+1

Oracle? Hah! Ni siquiera puede decir la diferencia entre un varchar vacío y un nulo. DB2 y yo escupimos en su base de datos de juguetes :-). – paxdiablo

+0

Arriba funciona en MySQL también – ConroyP

+0

¿Cómo especificamos la base de datos con el comando anterior? – Omnipotent

3

Desde su escenario implica dos bases de datos diferentes, la consulta correcta debería ser ...

INSERT INTO Y..dest_table (SE LECT * FROM source_table);

Se supone que la consulta, se está ejecutando utilizando la base de datos X.

1

En la línea de comandos

mysqldump somedb sometable -u user -p | mysql otherdb -u user -p 

continuación, escriba ambas contraseñas.

Esto funciona incluso si están en diferentes hosts (simplemente agregue el parámetro -h como de costumbre), lo que no se puede hacer con Insertar seleccionar.

Tenga cuidado de no conectar accidentalmente a la base de datos equivocada o terminará dejando caer la tabla de alguna tabla en ese db! (El volcado comenzará con 'drop table sometable').

1

insertar blah de select sugerido por otros es bueno para copiar los datos en mysql.

Si desea copiar la estructura de la tabla, es posible que desee utilizar el show create table Tablename; declaración.

Cuestiones relacionadas