Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

281
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda