drop database encuentro2; create database encuentro2; use encuentro2; create table sucursal( codSuc int not null, nombreSuc varchar(40), dirSuc varchar(40), telefSuc int, primary key (codSuc)); create table productos( codProd int not null, descProd varchar(40), precio decimal(3,2), cuitProveedor int(11), primary key (codProd)); create table stock( codProd int, codSuc int, cantExistente int, Primary Key (codProd,codSuc), foreign key (codProd) references productos (codProd), foreign key (codSuc) references sucursal (codSuc)); create table rubro( codRubro int not null, descripcion varchar(40), Primary key (codRubro)); create table factura( codFactura int, fechaFact date, vendedor varchar(40), primary key (codFactura)); create table facturaProducto( codProd int, codFactura int, cantProdxFact int, Primary Key(codProd,codFactura), foreign key (codProd) references productos (codProd), foreign key (codFactura) references factura (codFactura)); create table proveedor( cuitProveedor decimal(11), razonSocial varchar(20), direccion varchar(40), telefono int, codRubro int, Primary key (cuitProveedor), foreign Key (codRubro) references rubro (codRubro)); -- error en tipo de datos alter table productos add foreign key (cuitProveedor) references proveedor (cuitProveedor); -- corregir el error con una sentencia alter table que deberán tipear ustedes!
alter table productos add codRubro int; alter table productos add foreign key (codRubro) references rubro (codRubro); insert into sucursal (codSuc,nombreSuc,dirSuc,telefSuc) values(130, 'EasySGO','Ejercito Argentino 1234',4219345), (142,'EasyTUC','Portal del NOA',3514345678); alter table sucursal modify telefSuc varchar(40); select *from sucursal; insert into factura (codFactura,fechaFact,vendedor) values (23456,'2012-09-28','Juan Perez'), (1246,'2012-09-06', 'Jose López'); select *from factura; insert into rubro (codRubro,descripcion) values (345,'taladro'), (476,'martillo'),(578,'foco bajo consumo'); select *from rubro; alter table proveedor drop foreign key proveedor_ibfk_1; insert into proveedor (cuitProveedor,razonSocial,direccion,telefono) values (27257869878,'S.A.', 'La Plata e Irigoyen', 4356789), (27257869877,'cooperativa','Bolivia 348',4356789); select *from proveedor; -- error en el rango de precio y en una clave foránea insert into productos (codProd,descProd,precio,cuitProveedor) values (34,'martillo de goma', 34.76, 27257869877), (18, 'martillo de madera', 18.60, 27257869877), (19, 'maza',56.30, 27257869879); -- corregimos el error alter table productos modify precio decimal(5,2); -- copio el insert sin error en la foránea alter table productos modify cuitProveedor decimal(11); insert into productos (codProd,descProd,precio,cuitProveedor) values (34,'martillo de goma', 34.76, 27257869877), (18, 'martillo de madera', 18.60, 27257869877); select *from productos; insert into stock (codProd,CodSuc,cantExistente) values (34,130, 23), (34,142,14),(18,130,7),(18,142,1); select *from stock; insert into facturaproducto (codProd,codFactura,cantProdxFact) values (34,23456,3), (34,1246,4),(18,23456,1); select *from facturaproducto;