Está en la página 1de 4
asiii2s 11:27 ‘mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overlow en espatiol Stack Overflow en espafiol es un sitio de preguntas y respuestas para x programadores y profesionales de la informética, Solo te toma un minuto registrarte. Registrate para unirte a esta comunidad Cualquiera puede formular una pregunta Cualquiera puede responder Se vota a favor de las mejores respuestas, y éstas suben a los primeros puestos Referenciar una llave primaria compuesta en otra tabla Como foranea compuesta Formulada hace 2 afiosy 7 meses Activa hace 1 afioy 2 meses Vista 3k veces 4. Resulta que estoy desarrollando un ejercicio de un libro de gestidn de bases de datos ya que soy nuevo en esto y pues para poder darme a entender voy a mostrar el ejercicio y el grafo relacional 2 dela bases de datos: VW DW cree un archivo con los comandos SQL necesaios para crear Ia base de datos fga cuyo disefo 0 grafo telaconsles aparece en el ejemplo 216 el captulo anterior, Use compas autonumarcos pa los sbibutos identiteadores de jugader y equ. 2» Indque ls comandos necesaros para eliminar todas la estrcciones de clave primariay secundaria mediante elicomando ALTER. > Mocinque el atibuto i jugador para que sea un entero normal (0 autonumésice) } Haga lo necesario para que el campo equipo de la tabla jugador sea clave ajena hacia el campo nombre, de latabla eauipo. .) Modifique el tipo del campo nombre en fa tabla equipo para que se llame nombre_equipo y tenga un tamafo de 120 caracteres, éAfecta esto a la relacién de clave ajena definido anteriormente? Justifique su respuesta. i | fait ke ees Una liga de baloncesto se compone de jugadores que pertenecen a equipos los cuales juegan partidos. 'Si un equipo se da de baja en la competicion se eliminan automaticamente sus jugadores. Sin ‘embargo, no se podrd eliminar un equipo mientras haya registros de partidos jugados, bien como local ‘0 como visitante, Si se da de baja un jugador que es capitdn entonces el campo capitén del equipo itpsiosstackoverflow.com/questions/2 1083/eferenciar-una-tave-prmaria-compuesta-on-otaabla-como-fordnea-compuesta 4 sins 11:27 mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta~ Slack Overflow en espatiol Bien pues estoy desarrollando la primera parte de la actividad en MySql Workbech y pues necesito referenciar la llave primaria compuesta de la tabla equipo ala tabla partido y que elocal y evisitante sean la llave primaria de dicha tabla, que se actualizaran dependiendo de los equipos que vayan a jugar en la tabla equipo. A continuacién escribo lo que yo he desarrollado: CREATE DATABASE liga; USE liga; CREATE TABLE jugadores ( id_jugador INTEGER(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY, dni INTEGER(8) UNSIGNED NOT NULL, rrombre VARCHAR(20) NOT NULL, apellido VARCHAR(20) NOT NULL, equipo VARCHAR(28) NOT NULL UNIQUE, edad INTEGER(3) UNSIGNED NOT NULL, fecha_alta DATE de CREATE TABLE equipo( d_equipo INTEGER(4) UNSIGNED AUTO_INCREMENT, nombre VARCHAR(2@) NOT NULL, ‘ciudad VARCHAR(2®) NOT NULL, Puntos INTEGER(3) UNSIGNED NOT NULL, Ad_capitan INTEGER(4) UNSIGNED UNIQUE, PRIMARY KEY (4d_equipo, nonbre) ds CREATE TABLE partido( id_equipo INTEGER(4) UNSIGNED AUTO_INCRENENT, nombre VARCHAR(20) NOT NULL, local VARCHAR(20) NOT NULL, evisitante VARCHAR(28) NOT NULL, PRIMARY KEY (elocal, evisitante), CONSTRAINT fk_equipo_partido FOREIGN KEY (elocal, evisitante) references equipo (ic_equipo, nonbre) Sin embargo yo intenté seguir un ejemplo que plantea el libro el cual es el siguiente: ipso stackovertlow.comlquestions/25 1083/eferenciar-una-tave-prmavia-compuesta-on-ctraabla-como-fordnea-compuesta asiii2s 11:27 mysql - Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overflow en espatiol Yo entiendo que deberia colocarlo de la siguiente manera: FOREIGN KEY (id equipo, nombre) references equipo (id_equipo, nonbre) pero si notan la captura de pantalla del ejemplo del libro, no lo plantearon asi sino mas bien como bien dice ahi: “incluyendo una clave ajena que referencia al campo de la otra tabla” en resumidas cuentas eso es lo que yo necesito Incluir las claves ajenas " elocal y evisitante " que referencien los campos" id equipo y nonbre" de la tabla equipo y que ademés los campos elocat y evisitante sean la llave primaria de la tabla partido tal y como se indica en el grafo relacional. Disculpen la molestia es que soy nuevo en esto y espero me halla logrado dar a entender. Muchas Gracias. mysql sql mysql-workbench Compartir Mejora esta pregunta Seguir formulada el 2 abr. 19a las 21:49 Bere 57 1 9 1 respuesta “acivo Mas antiguo | Votos 4. Alparecer ya pude crearla exitosamente en Workbench a continuacién dejo el cédigo: 1 CREATE DATABASE Liga; Use Liga; Vv CREATE TABLE jugadores ( d_jugador INTEGER(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY, dni INTEGER(S) UNSIGNED NOT NULL, nombre VARCHAR(2®) NOT NULL, apellido VARCHAR(2@) NOT NULL, equipo VARCHAR(2@) NOT NULL UNIQUE, edad INTEGER(3) UNSIGNED NOT NULL, fecha_alta DATE itpsiosstackoverflow conlquestions/2 1083/eforenciar-una-lave-prmavla-compuesta-on-straabla-como-fordnea-compuesta asiii2s 11:27 ‘mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overiow en espafiol de CREATE TABLE equipo( id_equipo INTEGER(4) UNSIGNED AUTO_INCREMENT, nombre VARCHAR(2@) NOT NULL, ‘ciudad VARCHAR(2®) NOT NULL, Puntos INTEGER(3) UNSIGNED NOT NULL, id_capitan INTEGER(4) UNSIGNED UNIQUE, PRIMARY KEY (id equipo, nonbre) d CREATE TABLE partido( nombre VARCHAR(2®) NOT NULL, elocal VARCHAR(2®) NOT NULL, evisitante VARCHAR(28) NOT NULL, d_equipo INTEGER(4) UNSIGNED AUTO_INCRENENT, PRIMARY KEY (elocal, evisitante), FOREIGN KEV (id equipo, elocal) REFERENCES equipo(id equipo, nonbre), FOREIGN KEY (id equipo, evisitante) REFERENCES equipo(id_equipo, nonbre) dy’ A pesar de que nadie respondié, la dejo acd por si alguien la puede llegar a necesitar. Compartir Mejora esta respuesta Seguir respondida el 3 abr. 19a las 15:16 Ba screamox02 S719 ® Pregunta muy activa. Gana 10 de reputacién (sin contar el bono de asaciacién) para responder a esta pregunta El requisito de reputacién ayuda a proteger esta pregunta del spam y actividades que no sean respuestas. itpsiosstackoverflow.com/questions/2 1083ieforenciar-una-tave-primaria-compuesta-on-otaabla-como-fordnea-compuesta 48

También podría gustarte