Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

mensaje de error!

Estas en el tema de mensaje de error! en el foro de Mysql en Foros del Web. Tengo la siguiente base de datos: CREATE TABLE clientes ( Numclie integer not null, Empresa char(20) not null, Repclie integer not null, Limitecredito numeric, PRIMARY ...
  #1 (permalink)  
Antiguo 26/05/2010, 00:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
mensaje de error!

Tengo la siguiente base de datos:

CREATE TABLE clientes (
Numclie integer not null,
Empresa char(20) not null,
Repclie integer not null,
Limitecredito numeric,
PRIMARY KEY (Numclie));

INSERT INTO clientes VALUES (2101,'Jones Mfg',106,65000);
INSERT INTO clientes VALUES (2102,'First.Corp',101,65000);
INSERT INTO clientes VALUES (2103,'Acme mfg',105,50000);
INSERT INTO clientes VALUES (2105,'AAA Investment',101,45000);
INSERT INTO clientes VALUES (2106,'Fred Lewis Corp',102,65000);

INSERT INTO clientes VALUES (2108,'Holm Landis',109,55000);
INSERT INTO clientes VALUES (2109,'Chen Associates',103,25000);
INSERT INTO clientes VALUES (2111,'JCP Inc',103,50000);
INSERT INTO clientes VALUES (2112,'Zetacorp',108,50000);
INSERT INTO clientes VALUES (2113,'Ian Schmidt',104,20000);
INSERT INTO clientes VALUES (2114,'Orion Corp',102,20000);
INSERT INTO clientes VALUES (2115,'Smithson Corp',101,20000);
INSERT INTO clientes VALUES (2117,'J.P.Sinclair',106,35000);
INSERT INTO clientes VALUES (2118,'Midwest Systems',108,60000);
INSERT INTO clientes VALUES (2119,'Salomon Inc',108,60000);
INSERT INTO clientes VALUES (2120,'Rico Enterprise',102,50000);
INSERT INTO clientes VALUES (2121,'QMA Assoc.',103,45000);
INSERT INTO clientes VALUES (2122,'Three-Way Lines',105,30000);
INSERT INTO clientes VALUES (2123,'Carter Sons',102,40000);
INSERT INTO clientes VALUES (2124,'Peter Brothers',107,40000);

CREATE TABLES repventas(
Numempl integer not null,
Nombre char(15) not null,
Edad integer,
Oficinarep integer not null,
Titulo char(10),
Contrato date not null,
Director integer not null,
Cuota numeric,
Ventas numeric not null,
PRIMARY KEY (Numempl));

INSERT INTO repventas VALUES (101,'Dan Roberts',45,12,'Rep Ventas',"1986-10-20",104,30000,305673);
INSERT INTO repventas VALUES (102,'Sue Smith',48,21,'Rep Ventas',"1986-12-12",108,35000,474050);
INSERT INTO repventas VALUES (103,'Paul Cruz',29,12,'Rep Ventas',"1987-03-01",104,27500,286775);
INSERT INTO repventas VALUES (104,'Bob Smith',33,12,'Dir Ventas',"1987-05-19",106,20000,142594);
INSERT INTO repventas VALUES (105,'Bill Adams',37,13,'Rep Ventas',"1988-02-12",104,35000,367911);
INSERT INTO repventas VALUES (107,'Nancy Angelli',49,22,'Rep Ventas',"1988-11-14",108,30000,186042);
INSERT INTO repventas VALUES (108,'Larry Fitch',62,21,'Dir Ventas',"1989-10-12",106,35000,361865);
INSERT INTO repventas VALUES (109,'Marry Jones',31,11,'Rep Ventas',"1999-10-12",106,30000,392725);

CREATE TABLE oficinas (
Oficina integer not null,
ciudad char(15) not null,
Region char(10) not null,
Dir integer not null,
ObjetiVO numeric,
Ventas numeric not null,
PRIMARY KEY (Oficina),
FOREIGN KEY (Dir) REFERENCES repventas (Numempl));

INSERT INTO oficinas VALUES (12, 'Chicago','Este',104,800000,735042);
INSERT INTO oficinas VALUES (13, 'Atlanta','Este',105,350000,367911);
INSERT INTO oficinas VALUES (21, 'Los Angeles','Oeste',108,725000,835915);
INSERT INTO oficinas VALUES (22, 'Denver','Oeste',108,300000,186042);

CREATE TABLE productos (
Idfab char(3) not null,
Idproducto char(5) not null,
Descripcion char(20)not null,
Precio numeric not null,
Existencias integer not null,
PRIMARY KEY (Idfab, Idproducto));

INSERT INTO productos VALUES ('ACI','41001','Articulo Tipo 1',55,277);
INSERT INTO productos VALUES ('ACI','41002','Articulo Tipo 2',76,167);
INSERT INTO productos VALUES ('ACI','41003','Articulo Tipo 3',107,207);
INSERT INTO productos VALUES ('ACI','41004','Articulo Tipo 4',117,139);
INSERT INTO productos VALUES ('ACI','4100x','Ajustador',25,37);
INSERT INTO productos VALUES ('ACI','4100y','Extractor',2750,25);
INSERT INTO productos VALUES ('ACI','4100z','Montador',2500,28);
INSERT INTO productos VALUES ('BIC','41003','Manivela',652,3);
INSERT INTO productos VALUES ('BIC','41089','Retn',225,78);
INSERT INTO productos VALUES ('BIC','41672','Plate',180,0);
INSERT INTO productos VALUES ('FEA','112','Cubierta',148,115);
INSERT INTO productos VALUES ('FEA','114','Bancada Motor',243,15);
INSERT INTO productos VALUES ('IMM','773C','Riostra 1/2 Tm',975,28);
INSERT INTO productos VALUES ('IMM','775C','Riostra 1-Tm',1425,5);
INSERT INTO productos VALUES ('IMM','779C','Riostra 2-Tm',1875,9);
INSERT INTO productos VALUES ('IMM','878H','Soporte Riostra',250,24);
INSERT INTO productos VALUES ('IMM','887P','Perno Riostra',250,24);
INSERT INTO productos VALUES ('IMM','887X','Retenedor Riostra',475,32);
INSERT INTO productos VALUES ('QSA','XK47','Reductor',355,38);
INSERT INTO productos VALUES ('QSA','XK48','Reductor',134,203);
INSERT INTO productos VALUES ('QSA','XK48A','Reductor',117,37);
INSERT INTO productos VALUES ('REI','2A44G','Pasador Bisagra',350,14);
INSERT INTO productos VALUES ('REI','2A44L','Bisagra Izqda',4500,12);
INSERT INTO productos VALUES ('REI','2A44R','Bisagra Dcha',4500,12);
INSERT INTO productos VALUES ('REI','2A45C','V Stago Trinquete',79,210);

CREATE TABLE pedidos (
Numpedido integer not null,
Fechapedido date not null,
Clie integer not null,
Rep integer not null,
Fab char(3) not null,
Producto char(5) not null,
Cant integer not null,
Importe numeric not null,
PRIMARY KEY (Numpedido),
FOREIGN KEY (Clie) REFERENCES clientes (Numclie),
FOREIGN KEY (Rep) REFERENCES repventas (Numempl),
FOREIGN KEY (Fab,Producto) REFERENCES productos (idfab,idproducto));

INSERT INTO pedidos VALUES (112963,"1989-12-17",2103,105,'ACI','41004',28,3276);
INSERT INTO pedidos VALUES (112968,"1989-10-12",2102,101,'ACI','41004',34,3978);
INSERT INTO pedidos VALUES (112975,"1989-10-12",2111,103,'REI','2A44G',6,2100);
INSERT INTO pedidos VALUES (112979,"1989-10-12",2114,102,'ACI','4100Z',6,15000);
INSERT INTO pedidos VALUES (112983,"1989-12-27",2103,105,'ACI','41004',6,702);
INSERT INTO pedidos VALUES (112987,"1989-12-31",2103,105,'ACI','4100Y',11,27500);
INSERT INTO pedidos VALUES (112992,"1989-11-04",2118,108,'ACI','41002',10,760);
INSERT INTO pedidos VALUES (112993,"1989-01-04",2106,102,'REI','2A45C',24,1896);

INSERT INTO pedidos VALUES (112997,"1990-01-08",2124,107,'BIC','41002',10,760); aqui me muestra error

INSERT INTO pedidos VALUES (113003,"1990-01-25",2108,109,'IMM','779C',3,5625);
INSERT INTO pedidos VALUES (113007,"1990-01-08",2112,108,'IMM','773C',3,2925);
INSERT INTO pedidos VALUES (113012,"1990-01-11",2111,105,'ACI','41003',35,3745);
INSERT INTO pedidos VALUES (113013,"1990-01-14",2118,108,'BIC','41003',1,652);
INSERT INTO pedidos VALUES (113024,"1990-01-20",2114,108,'QSA','XK47',20,7100);
INSERT INTO pedidos VALUES (113027,"1990-01-22",2103,105,'ACI','41002',54,4104);
INSERT INTO pedidos VALUES (113042,"1990-02-02",2113,101,'REI','2A44R',5,22500);
INSERT INTO pedidos VALUES (113045,"1990-02-02",2112,108,'REI','2A44R',10,45000);
INSERT INTO pedidos VALUES (113048,"1990-02-10",2120,102,'IMM','779C',2,3750);
INSERT INTO pedidos VALUES (113049,"1990-02-10",2118,108,'QSA','XK47',6,2130);
INSERT INTO pedidos VALUES (113051,"1990-02-10",2118,108,'QSA','XK47',4,1420);
INSERT INTO pedidos VALUES (113055,"1990-02-15",2108,101,'ACI','4100X',6,150);
INSERT INTO pedidos VALUES (113057,"1990-02-18",2111,103,'ACI','4100X',24,600);
INSERT INTO pedidos VALUES (113058,"1990-02-23",2108,109,'FEA','112',10,1480);
INSERT INTO pedidos VALUES (113062,"1990-02-24",2124,107,'FEA','114',10,2430);
INSERT INTO pedidos VALUES (113065,"1990-03-02",2109,102,'QSA','XK47',6,2130);
INSERT INTO pedidos VALUES (113069,"1990-03-02",2109,107,'IMM','775C',22,31350);

Y en el mysql el mensaje es al tratar de insertar:

mysql>INSERT INTO pedidos VALUES (112997,"1990-01-08",2124,107,'BIC','41002',10,760);

el error siguiente:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
(`empresa`.`pedidos`,CONSTRAINT `pedidos_ibfk_3` FOREIGN KEY (`Fab`,`Producto`)
REFERENCES 'productos'(`Idfab`,`Idproducto`))
mysql>

En que me equivoque por que los demas si me los inserta.
  #2 (permalink)  
Antiguo 26/05/2010, 05:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mensaje de error!

El par 'BIC','41002' no existe como clave en la tabla PRODUCTO.
Llas claves con 'BIC' que existen son:
Código MySQL:
Ver original
  1. mysql> SELECT Idfab, Idproducto FROM productos WHERE IdFab = 'bic';
  2. +-------+------------+
  3. | Idfab | Idproducto |
  4. +-------+------------+
  5. | BIC   | 41003      |
  6. | BIC   | 41089      |
  7. | BIC   | 41672      |
  8. +-------+------------+
  9. 3 rows in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/05/2010, 05:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: mensaje de error!

Como ya te han dicho es porque no existe dicho producto.

Introduce antes:

INSERT INTO productos VALUES ('BIC','41002','Descripcion',Precio,Existencias);

Y luego ya podras introducir dicho pedido:

INSERT INTO pedidos VALUES (112997,"1990-01-08",2124,107,'BIC','41002',10,760);

Etiquetas: mensaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:29.