Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

280
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!