
Que onda chavos, les envío lo que vimos en la clase de hoy.. ustedes ya saben el contexto... practiquen y analicen como crear las tables, agregar y quitar restricciones de llaves foraneas, y los diversos atributos de integridad... prueben para que funcionan guiandose del PDF que les proporcioné en clases.
Por cualquier cosa... me avisan y lo checamos en clases... Saludos.. tengan un excelente fin de semana...
CREATE TABLE cliente
(
id_cliente INT NOT NULL,
nombre VARCHAR(30),
PRIMARY KEY (id_cliente)
) engine = INNODB;
CREATE TABLE venta
(
id_factura INT NOT NULL,
id_cliente INT NOT NULL,
cantidad INT,
PRIMARY KEY(id_factura),
INDEX (id_cliente),
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
) engine = INNODB;
ALTER TABLE venta ADD FOREIGN KEY(id_cliente) REFERENCES
cliente(id_cliente);
INSERT INTO cliente VALUES(1,'Juan Penas');
INSERT INTO cliente VALUES(2,'Pepe el toro');
INSERT INTO venta VALUES(1,1,23);
INSERT INTO venta VALUES(3,2,81);
//checar por que error aqui...
INSERT INTO venta VALUES(2,3,39);
//Ahora probemos ... ver por que
INSERT INTO cliente VALUES(3,'Pepe pecas');
INSERT INTO venta VALUES(2,3,39);
//checar que pasa si eliminamos un registro que tiene referencia
DELETE FROM cliente WHERE id_cliente=3;
//Como borrar una llave referencia de llave foranea sin saber el nombre de la llave foranea
SHOW CREATE TABLE venta;
//checar el nombre del constraint
ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_1;
ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_2;
// ahora pongamos de nuevo una llave foranea a la tabla para hacer referencias
ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
REFERENCES cliente(id_cliente) ON DELETE CASCADE;
//Vamos a ver como están nuestros registros antes de ejecutar la sentencia DELETE:
SELECT * FROM cliente;
SELECT * FROM venta;
// Ahora eliminaremos a Pepe Pecas de la base de datos:
DELETE FROM cliente WHERE id_cliente=3;
SELECT * FROM cliente;
SELECT * FROM venta;
// ahora chequemos otros tipos de restricciones, no solo con borrar si no con actualizar
//Primero borremos la restriccion para luego volverla a crear...
show create table venta;
ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_1;
ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_2;
ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
REFERENCES cliente(id_cliente) ON DELETE CASCADE ON
UPDATE CASCADE;
// chequemos los datos
UPDATE cliente SET id_cliente=10 WHERE id_cliente=1;
// comprobemos los cambios
SELECT * FROM cliente;
SELECT * FROM venta;
DELETE FROM cliente WHERE id_cliente=3;
No hay comentarios:
Publicar un comentario