Aqui les dejo mi problema: estoy creando una base de datos con dos tablas, ambas debo relacionarlas por el campo IdCategoria ahi es donde estoy pataleando ya que no puedo crear la relacion, a ver si me pueden ayudar:
Cita:
Alguien que me ayude y que me corrija la falla, se le agradece la respuesta. CREATE DATABASE IF NOT EXISTS ferreteria;
USE ferreteria;
DROP TABLE IF EXISTS categorias;
DROP TABLE IF EXISTS productos;
CREATE TABLE categoria (
IdCategoria VARCHAR(5) NOT NULL,
NombreCategoria VARCHAR(50) NOT NULL,
Descripcion VARCHAR(100) NOT NULL,
CONSTRAINT pk_categoria PRIMARY KEY (IdCategoria)
) TYPE=INNODB;
CREATE TABLE producto(
IdCategoria VARCHAR(5) NOT NULL,
IdProducto CHAR(5) NOT NULL,
NombreProducto VARCHAR(50) NOT NULL,
CantidadPorUnidad VARCHAR(30) NOT NULL,
PrecioUnidad DECIMAL(8,2) NOT NULL,
UnidadesEnExistencia INT NOT NULL,
CONSTRAINT pk_producto PRIMARY KEY (IdProducto),
KEY idx_producto01(IdCategoria),
CONSTRAINT fk_producto_categoria FOREIGN KEY (IdCategoria)
REFERENCES categoria(IdCategoria)
ON DELETE RESTRICT
ON UPDATE RESTRICT
) TYPE=INNODB;
INSERT INTO categoria (IdCategoria,NombreCategoria,Descripcion) VALUES
('C0001','Electricidad','Cables, Tomacorrientes, Enchufes, etc.'),
('C0002','Gasfiteria','Tubos, Accesorios, Caños, etc.'),
('C0003','Construccion','Cemento, Yeso, Fierros, etc.'),
('C0004','Pintura','Pintura, Pintura Lavable, Tiner, etc.');
INSERT INTO producto (IdProducto,NombreProducto,CantidadPorUnidad,Preci oUnidad,UnidadesEnExistencia) VALUES
('C0001','P0001','Cable Mellizo','Metro','0.90','2000'),
('C0001','P0002','Cinta Aislante','Unidad', '2.00','120'),
('C0001','P0003','Tomacorriente','Unidad','1.30',' 90'),
('C0002','P0004','Caño premium','Unidad','7.00','80'),
('C0002','P0005','Teflon','Unidad','3.00','64'),
('C0002','P0006','codos','Unidad','1.20','87'),
('C0003','P0007','Cemento','Bolsa','28.00','90'),
('C0003','P0008','Yeso','Bolsa','5.00','60'),
('C0003','P0009','Fierro 1/2 pulg','Metros','5.00','1500'),
('C0004','P0010','Pintura Lavable','Balde','5.00','60'),
('C0004','P0011','Brochas','Unidad','1.50','43'),
('C0004','P0012','Tiner','Galones','1.20','60');
USE ferreteria;
DROP TABLE IF EXISTS categorias;
DROP TABLE IF EXISTS productos;
CREATE TABLE categoria (
IdCategoria VARCHAR(5) NOT NULL,
NombreCategoria VARCHAR(50) NOT NULL,
Descripcion VARCHAR(100) NOT NULL,
CONSTRAINT pk_categoria PRIMARY KEY (IdCategoria)
) TYPE=INNODB;
CREATE TABLE producto(
IdCategoria VARCHAR(5) NOT NULL,
IdProducto CHAR(5) NOT NULL,
NombreProducto VARCHAR(50) NOT NULL,
CantidadPorUnidad VARCHAR(30) NOT NULL,
PrecioUnidad DECIMAL(8,2) NOT NULL,
UnidadesEnExistencia INT NOT NULL,
CONSTRAINT pk_producto PRIMARY KEY (IdProducto),
KEY idx_producto01(IdCategoria),
CONSTRAINT fk_producto_categoria FOREIGN KEY (IdCategoria)
REFERENCES categoria(IdCategoria)
ON DELETE RESTRICT
ON UPDATE RESTRICT
) TYPE=INNODB;
INSERT INTO categoria (IdCategoria,NombreCategoria,Descripcion) VALUES
('C0001','Electricidad','Cables, Tomacorrientes, Enchufes, etc.'),
('C0002','Gasfiteria','Tubos, Accesorios, Caños, etc.'),
('C0003','Construccion','Cemento, Yeso, Fierros, etc.'),
('C0004','Pintura','Pintura, Pintura Lavable, Tiner, etc.');
INSERT INTO producto (IdProducto,NombreProducto,CantidadPorUnidad,Preci oUnidad,UnidadesEnExistencia) VALUES
('C0001','P0001','Cable Mellizo','Metro','0.90','2000'),
('C0001','P0002','Cinta Aislante','Unidad', '2.00','120'),
('C0001','P0003','Tomacorriente','Unidad','1.30',' 90'),
('C0002','P0004','Caño premium','Unidad','7.00','80'),
('C0002','P0005','Teflon','Unidad','3.00','64'),
('C0002','P0006','codos','Unidad','1.20','87'),
('C0003','P0007','Cemento','Bolsa','28.00','90'),
('C0003','P0008','Yeso','Bolsa','5.00','60'),
('C0003','P0009','Fierro 1/2 pulg','Metros','5.00','1500'),
('C0004','P0010','Pintura Lavable','Balde','5.00','60'),
('C0004','P0011','Brochas','Unidad','1.50','43'),
('C0004','P0012','Tiner','Galones','1.20','60');