Soy nuevo en MySQL. Me gustaría copiar el contenido de una tabla a otra tabla dentro de la misma base de datos. Básicamente, me gustaría insertar en una tabla desde otra tabla. ¿Existe una forma fácil de hacer esto?
118
INSERT INTO TARGET_TABLE SELECT * FROM SOURCE_TABLE;
EDITAR: o si las tablas tienen diferentes estructuras también puede:
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
EDITAR: para restringir esto ...
INSERT INTO TARGET_TABLE (`col1_`,`col2_`) SELECT `col1`,`col2` FROM SOURCE_TABLE WHERE `foo`=1
Si la tabla no existe, puede crear una con el mismo esquema así:
Luego, para copiar los datos:
fuente
SELECT * INTO newTable FROM sourceTable
en w3school , por qué no funciona enMySQL
SELECT ... INTO
está destinado a exportar una tabla a un archivo de salida o variables; no directamente en una mesa. Ver dev.mysql.com/doc/refman/5.7/en/select-into.htmlSi table1 es grande y no desea bloquearlo durante el proceso de copia, puede realizar un volcado y carga en su lugar:
fuente
show processlist
, no pude ver ninguna consulta en ejecución. No estoy seguro de cuál es el problema.Esto funcionó para mí
CREATE TABLE newtable LIKE oldtable;
Replica mesa nueva con mesa antigua
INSERT newtable SELECT * FROM oldtable
;Copia todos los datos de la fila en una nueva tabla.
Gracias
fuente
Si desea crear y copiar el contenido en una sola toma, simplemente use SELECT:
fuente
Esto funcionó para mí. Puede hacer que la instrucción SELECT sea más compleja, con cláusulas WHERE y LIMIT.
Primero duplique su tabla grande (sin los datos), ejecute la siguiente consulta y luego trunque la tabla más grande.
Super simple. :-)
fuente
Simplemente crea una nueva tabla con la misma estructura que la tabla de origen y también copia todas las filas de source_table en target_table.
Si necesita copiar algunas filas en target_table, aplique una condición dentro de la cláusula where
fuente
Prueba esto. Funciona bien en mi Oracle 10g,
fuente