Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

282
Vistas
¿Cómo crear una tabla B como A con definiciones de clave externa?

Puedo crear la tabla sales_order en la base de datos archived_db con el mismo esquema que la tabla sales_order de la base de datos principal prod_db usando la siguiente consulta:

CREATE TABLE archived_db.sales_order LIKE prod_db.sales_order

Funciona bien y crea la tabla sales_order en archived_db con la misma estructura de tabla que en prod_db . Una cosa que no se copia/crea es la clave externa.

Entonces, mi pregunta es, ¿es posible crear la tabla B usando el esquema de la tabla A con las mismas claves externas?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puedes usar esto:

 SHOW CREATE TABLE prod_db.sales_order

Esto muestra la definición de la tabla en la sintaxis de una sentencia CREATE TABLE.

Capture el resultado de esto en una cadena y luego ejecute esa cadena como una instrucción SQL.

Supongo que CREATE TABLE <B> LIKE <A> no admite claves externas porque las claves externas son una función que depende del motor de almacenamiento. Los metadatos independientes del motor no almacenan definiciones de claves externas. Esta es una de las consecuencias inesperadas de la extraña historia y arquitectura de motores de almacenamiento conectables de MySQL.


Re tu comentario:

ERROR 1215 (HY000): No se puede agregar una restricción de clave externa

¿Existe la tabla principal en el esquema de base de datos archivado en el que está creando la tabla de copia? Me imagino que la definición de clave externa no califica el nombre de la tabla y supone que la tabla principal está en el mismo esquema que la tabla sales_order .

Si necesita especificar a qué esquema hace referencia la clave externa, probablemente sea mejor crear la tabla usando CREATE TABLE LIKE como lo hizo antes, y luego agregar claves externas usando ALTER TABLE .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda