Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2009, 15:53
maqdmin
 
Fecha de Ingreso: agosto-2009
Ubicación: Vigo - Galiza
Mensajes: 17
Antigüedad: 14 años, 8 meses
Puntos: 0
Pierdo registros en otra tabla al modificar una

Hola foreros:
Tengo algunas dudas con esta pequeña practica que estoy haciendo.
Bueno, las dos tablas son creadas correctamente, asi como la introduccion de datos de las 2 tablas. La tabla partidos tiene 17 entradas. El problema viene cuando quiero modificar la tabla equipos. Una vez realizado el cambio en equipos la tabla partidos pierde bastantes entradas, ¿me podriais ayudar? Muchas gracias.

Otro problema es el siguiente:
Quiero eliminar aquellos equipos que no hayan jugado un partido, yo tengo esta consulta pero me devuelve los equipos que no han jugado algun partido en casa o fuera, pero no la interseccion de ambas.
SELECT nombre FROM equipos e WHERE nombre NOT IN
(SELECT nombre FROM equipos e, partidos p1, partidos p2
WHERE e.registro=p1.id_equipo1 AND e.registro=p2.id_equipo2);





# creamos la dase de datos
Create database if not exists liga_baloncesto;
Show databases;

# la abrimos
Use liga_baloncesto;

# creamos la tabla equipos
Create table if not exists equipos (
registro INT auto_increment,
nombre VARCHAR(30) NOT NULL,
nombre_entrenador VARCHAR(35),
nombre_cancha VARCHAR(30),
poblacion VARCHAR(25),
anio_fundacion INT(4),
anotaciones BLOB,
CONSTRAINT PK_resitro_equ PRIMARY KEY (registro));
ALTER TABLE equipos ADD UNIQUE (registro);
Show columns from equipos;


# creamos la tabla partidos
Create table if not exists partidos (
registro INT auto_increment,
id_equipo1 INT,
resultado_equipo1 INT,
id_equipo2 INT,
resultado_equipo2 INT,
constraint UQ_registro_part unique (registro),
constraint PK_registro_part primary key (registro));

alter table partidos add
CONSTRAINT FOREIGN KEY (id_equipo1)
REFERENCES equipos(registro) ON DELETE CASCADE;
alter table partidos add
CONSTRAINT FOREIGN KEY (id_equipo2)
REFERENCES equipos(registro) ON DELETE CASCADE;

Show columns from partidos;

#drop table partidos;

# introducimos los datos de la tabla equipos
Insert into equipos values (1,"CF barceloneto", "Pedro A.", "Barcelona Arena", "Barcelona", 1918, "Este equipo fue el primero que jug un torneo europeo");
Insert into equipos values (2,"R. Madride", "Juan A.", "San Yago", "Madrid", 1941, "Este equipo fue campeon el primer que jug un torneo europeo");
Insert into equipos values (3,"Barcelona Juniors", "Santiago M.", "Municipal Barna", "Barcelona", 1988, "Este equipo no ha ganado nada todavia");
Insert into equipos values (4,"Los heroes", "Marcos R.", "Palacio deportes", "Barcelona", 1960, "Su presidente esta imputado en un caso de blanqueo de capitales");
Insert into equipos values (5,"Campeones", "Juan S.", "Herricoaria", "Bilbao", 1943, "Se fundo con ex-presos comunes que descubrieron el deporte como valvula de escape");
Insert into equipos values (6,"Los aguilillas", "Carlos Z.", "Municipal", "Madrid", 1954, "Esta pendiente de una sancion por intoxicar a sus contricantes en el ultimo partido con yogures caducados");
Insert into equipos values (7,"San pepes", "Luis L.", "Cachafeiro", "Santiago", 1924, "Este equipo pertenece a un magnate de los percebes");
Insert into equipos values (8,"Los apostoles", "Sonia F.", "Palacio Diputacion", "Cadiz", 1941, "Sus jugadores tienen una charanga muy apreciada en la ciudad");
Insert into equipos values (9,"Jerifaltes.com", "Roberto F.", "Barcelona Arena", "Barcelona", 1972, "Es el equipo mas sucio de la competicion");

# introducimos los datos de la tabla partidos
Insert into partidos values (1,1,60,2,65);
Insert into partidos values (2,1,64,3,85);
Insert into partidos values (3,1,70,4,55);
Insert into partidos values (4,1,40,5,70);
Insert into partidos values (5,1,45,6,84);
Insert into partidos values (6,2,75,3,94);
Insert into partidos values (7,2,66,4,87);
Insert into partidos values (8,2,98,5,104);
Insert into partidos values (9,2,102,6,88);
Insert into partidos values (10,3,84,6,87);
Insert into partidos values (11,3,92,5,91);
Insert into partidos values (12,3,84,9,76);
Insert into partidos values (13,4,94,5,67);
Insert into partidos values (14,4,84,6,74);
Insert into partidos values (15,4,62,7,89);
Insert into partidos values (16,4,65,8,69);
Insert into partidos values (17,4,69,9,98);


# visualiza todos los registros las dos tablas
SELECT * FROM equipos, partidos;

# actualiza algunos datos de las dos tablas
REPLACE into equipos values (2,"R. Madriditis", "Maria A.", "San Yago", "Madrid", 1941, "Este equipo fue campeon el primer que jug un torneo europeo");
REPLACE into equipos values (4,"Los heroes", "Gustavo F.", "Palacio deportes", "Badalona", 1960, "Su presidente esta imputado en un caso de blanqueo de capitales");