Crear tabla con llaves foráneas en MySQL Administrator

Publicado por María Paulina Ramírez Vásquez jueves, 27 de noviembre de 2008 6:22 p. m.

En el artículo anterior creamos una tabla simple. Sólo contenía campos y una llave primaria. En este caso vamos a crear una tabla referenciada a través de llaves foráneas.

Para empezar, utilizaremos la base de datos "prueba" que habíamos creado anteriormente y añadiremos dos tablas más que acompañarán a la tabla "persona" que creamos en el artículo de Crear tablas en MySQL Administrator. Trataremos de aplicar el caso de estudiantes y sus materias. Para este caso, necesitaremos dos tablas más que son: "materia" y "persona_materia".

Las tablas "materia" y "persona", serán las tablas a referenciar con las llaves foráneas que crearemos en la tabla "persona_materia".

Creamos la tabla "materia", así:

Luego creamos la tabla "persona_materia":

Ya creados los campos de la tabla, nos ubicamos en la ficha Foreign Keys para agregar las llaves foráneas. Estando allí veremos una lista con las llaves foráneas presentes en la tabla. En nuestro caso, estará vacía. En la parte inferior de esa lista (a nuestra derecha) veremos un "+", con él agregamos una nueva llave foránea. En la ventana Add Foreign Key escribimos el nombre de la llave foránea a crear. Por defecto, coloca el nombre de la tabla seguido de un consecutivo. En nuestro caso, lo dejaré con ese nombre. Damos OK.

En la parte derecha encontramos las opciones de la llave foránea (Foreign Key Settings). Aquí es donde escogeremos las columnas a referenciar de las otras tablas ("persona" y "materia") y además añadiremos restricciones o constraints.

En Ref. Table se encuentran listadas las tablas de la base de datos; escogemos "persona" primero. Debajo de esta lista, se mostrarán dos atributos o parámetros: Column y Reference Column. Column indica la columna de la tabla que nos servirá como índice para referenciar a la tabla "persona". Reference Column indica la columna de la tabla que será referenciada. Para hacerlo más claro, en Column colocamos 'cedula' y en Reference Column 'cedula'. Por lo regular (si las dos columnas tienen el mismo nombre) aparecen escogidas automáticamente.

Ya escogidas las columnas, en On Delete tenemos 4 tipos de restricciones: No Action, Restrict, Not Null y Cascade. En nuestro caso escogeremos Cascade (asumo que son conocidas las funciones de cada una de las restricciones dentro de la creación de una llave foránea en MySQL); lo mismo hacemos en On Update. Ya con todos los parámetros de la llave foránea, procedemos a agregar la segunda llave foránea con los mismos parámetros a excepción que la tabla a referenciar será "materia" con los campos 'idmateria' e 'idmateria', respectivamente. Aplicamos los cambios y ejecutamos la sentencia generada.

Este ha sido un caso muy práctico y sencillo de cómo crear tablas con llaves foráneas en MySQL Administrator. Nos hemos dado cuenta que es una herramienta muy práctica e intuitiva que nos permite ahorrar mucho tiempo a la hora de crear nuestras bases de datos. Espero que haya sido de mucha utilidad este pequeño artículo.