CREATE TABLE foo SELECT * FROM bar
copia la tabla foo
y la duplica como una nueva tabla llamada bar
.
¿Cómo puedo copiar el esquema de foo
una nueva tabla llamada bar
sin copiar también los datos?
Tratar:
CREATE TABLE foo SELECT * FROM bar LIMIT 0
O:
CREATE TABLE foo SELECT * FROM bar WHERE 1=0
select * into foo from bar where 1=0
create table NewTable like OldTable
sea una opción para ti. Enlace copiado de la respuesta eliminada.
CREATE TABLE new_tbl LIKE orig_tbl;
Copias privilegios también? ¿O deben copiarse manualmente?
SHOW CREATE TABLE bar;
obtendrá una declaración de creación para esa tabla, editará el nombre de la tabla o cualquier otra cosa que desee y luego ejecútela.
Esto le permitirá copiar los índices y también ajustar manualmente la creación de la tabla.
También puede ejecutar la consulta dentro de un programa.
show create table bar
en una declaración ejecutable dinámicamente?
show create table bar
ya es ejecutable, si el script tiene el permiso para crear tablas, puede analizarlo y luego ejecutar también las declaraciones de alterar tabla.
create table...
no copiará índices. esta respuesta es la mejor opción
Solo quiero clonar la estructura de la tabla:
CREATE TABLE foo SELECT * FROM bar WHERE 1 = 2;
También quiere copiar los datos:
CREATE TABLE foo as SELECT * FROM bar;
foo
ybar
son variables arbitrarias sin sentido , muy parecidas a Alice y Bob .