¿Crear tabla en MySQL que coincida con otra tabla?
84
Estoy usando MySQL. Tengo una tabla llamada EMP, y ahora necesito crear una tabla más (EMP_TWO) con el mismo esquema, las mismas columnas y las mismas restricciones. ¿Cómo puedo hacer esto?
Utilice LIKE para crear una tabla vacía basada en la definición de otra tabla, incluidos los atributos de columna y los índices definidos en la tabla original:
CREAR TABLA new_table LIKE original_table; La copia se crea utilizando la misma versión del formato de almacenamiento de la tabla que la tabla original. Se requiere el privilegio SELECT en la tabla original.
LIKE funciona solo para tablas base, no para vistas.
CREATE TABLE ... LIKE no conserva ninguna opción de tabla DATA DIRECTORY o INDEX DIRECTORY que se especificaron para la tabla original, ni ninguna definición de clave externa.
+1 He estado usando MySQL durante años y no sabía por completo que podría usarlo LIKEen una CREATEdeclaración.
jprofitt
@jprofitt Solo lo sé porque quería hacer esto para probar algo en un servidor de producción (consulta importante) el otro día -> ¡muy útil!
Manse
@ManseUK ¿y si quiero copiar una tabla de una base de datos y volver a crearla en otra base de datos?
Yaje
¡Esto es genial! Gracias ... ¡Muy útil por cierto!
Hassantm
En caso de que alguien necesite la misma estructura de tabla en otra base de datos, todo lo que necesita hacer es CREATE TABLE new_db.new_table LIKE old_db.old_table:)
Jimmy Adaro
13
Si desea copiar solo la estructura, utilice
createtable new_tbl like old_tbl;
Si desea copiar la estructura y los datos, utilice
Respuestas:
Para crear una nueva tabla basada en otra estructura de tablas / restricciones, use:
CREATE TABLE new_table LIKE old_table;
Para copiar los datos, si es necesario, utilice
INSERT INTO new_table SELECT * FROM old_table;
Crear documentos de tabla
Tenga cuidado con las notas sobre la opción LIKE:
fuente
LIKE
en unaCREATE
declaración.CREATE TABLE new_db.new_table LIKE old_db.old_table
:)Si desea copiar solo la estructura, utilice
create table new_tbl like old_tbl;
Si desea copiar la estructura y los datos, utilice
create table new_tbl select * from old_tbl;
fuente
¿Crear tabla en MySQL que coincida con otra tabla? Respuesta:
CREATE TABLE new_table AS SELECT * FROM old_table;
fuente
¿Por qué no vas así?
CREATE TABLE new_table LIKE Select * from Old_Table;
o puedes filtrar datos como este
CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;
Para tener la misma restricción en su nueva tabla, primero tendrá que crear un esquema, luego debe buscar datos para la creación del esquema
CREATE TABLE new_table LIKE Some_other_Table;
fuente
like
yselect *
en una declaración? estoy recibiendo un error. También verifique esta respuesta stackoverflow.com/questions/10147565/create-table-like-a1-as-a2