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

No puedo ingresar registros.

Estas en el tema de No puedo ingresar registros. en el foro de Mysql en Foros del Web. Buenas tardes, el día de ayer y hoy estuve intentando el crear tablas, establecer las llaves e ingresar datos, pero, el día de ayer, que ...
  #1 (permalink)  
Antiguo 26/03/2013, 18:53
 
Fecha de Ingreso: marzo-2013
Ubicación: México
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
No puedo ingresar registros.

Buenas tardes, el día de ayer y hoy estuve intentando el crear tablas, establecer las llaves e ingresar datos, pero, el día de ayer, que tenía mis tablas con registros, no me permitía crear mis llaves, y hoy intenté crear primero y establecer las relaciones por las llaves, ahora, no puedo ingresar ningún registro. S: ¿Qué puedo hacer en este caso? Gracias de antemano.
  #2 (permalink)  
Antiguo 26/03/2013, 20:15
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: No puedo ingresar registros.

¿Y piensas que sin ver la estructura de las tablas que estuviste trabajando, alguien puede responder tu pregunta?
La verdad, no. Es imposible darte una respuesta si no nos das detalles técnicos de lo que hiciste.
Empieza por postear todos los CREATE TABLE de cada una de las tablas que creaste. Recién entonces podremos ver por donde falla (si es que falla por allí, y no es un error de lógica de inserciones).
__________________
¿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/03/2013, 21:02
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 15 años, 11 meses
Puntos: 5
Si tenías la tabla con registros y no te permitía crear las llaves, de seguro de debe a que el campo que definiste como PK no es único o tiene valores null.

Lo mismo para el caso contrario. Si creaste las llaves de seguro que la data que no cumple te va a impedir realizar le registro.

Como dicen arriba ninguna respuesta será acertada si no colocas la respuesta que te envía el motor.

Saludos
  #4 (permalink)  
Antiguo 11/04/2013, 10:38
 
Fecha de Ingreso: marzo-2013
Ubicación: México
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: No puedo ingresar registros.

Definí las tablas con PK, posteriormente alteré todas y establecí las FK, de ahí empecé a tener problemas, puesto que no podía ingresar ningún registro. Y me dice: Error Code: 1452 Cannod add or update a child row a foreing key constraint fails.

Mi base de datos es la siguiente.

Código MySQL:
Ver original
  1. create database empresa;
  2. use empresa;
  3. create table Oficinas(
  4.     Oficina int(2) primary key,
  5.     Ciudad varchar(10),
  6.     Región varchar(6),
  7.     Dir int(3),
  8.     Objetivo int(9),
  9.     Ventas int(9)
  10. );
  11.  
  12. create table Clientes(
  13.     Num_clie int(4) primary key,
  14.     Empresa varchar(20),
  15.     Rep_clie int(3),
  16.     Lím_crédito int(8)
  17. );
  18.  
  19. create table Repventas(
  20.     Num_empl int(3) primary key,
  21.     Nombre varchar(20),
  22.     Edad int(2),
  23.     Oficina_Rep int(2),
  24.     Título varchar(15),
  25.     Contrato date not null,
  26.     Director int(3),
  27.     Cuotra int(10),
  28.     Ventas float(9)
  29. );
  30.  
  31. create table Pedidos(
  32.     Núm_pedido int(6),
  33.     Fecha_pedido date not null,
  34.     Clie int(4),
  35.     Rep int(3),
  36.     Fab varchar(3),
  37.     Producto varchar(6),
  38.     Cant int(2),
  39.     Importe int(7)
  40. );
  41.  
  42. create table Productos(
  43.     Id_fábrica int(3),
  44.     Id_producto int(6),
  45.     Descripción varchar(20),
  46.     Precio int(6),
  47.     Existencia int(3),
  48.     primary key(Id_fábrica,Id_producto)
  49. );
  50.  
  51.  
  52. alter table Oficinas
  53. add foreign key(Dir) references Repventas(Num_empl);
  54. alter table Repventas
  55. add foreign key(Director) references Repventas(Num_empl);
  56. alter table Pedidos
  57. add foreign key(Fab,Producto) references Productos(Id_fábrica,Id_producto);
  58. alter table Clientes
  59. add foreign key(Rep_clie) references Repventas(Num_empl);
  #5 (permalink)  
Antiguo 11/04/2013, 14:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: No puedo ingresar registros.

Hola ichristh:

Vayamos por partes... si ya tenías tus tablas con registros y al momento de querer crea las llaves no te dejó, eso quiere decir que era porque la información que tenías almacenada en tus tablas NO CUMPLÍA CON LAS ESPECIFICACIONES DE LAS LLAVES FORÁNEAS.

Ahora, si ya tienes tus tablas con las llaves definidas y estás intentando cargar la información de tus tablas y no te deja, es el mismo caso, ESO QUIERE DECIR QUE LA INFORMACIÓN QUE QUIERES ALMACENAR SIGUE SIN CUMPLIR CON LOS CRITERIOS QUE DEFINISTE EN TUS LLAVES FORÁNEAS.

El error es bastante claro en este sentido:

Código:
Error Code: 1452 Cannod add or update a child row a foreing key constraint fails.
Eso quiere decir que estás intentando insertar un registro a una tabla hija con una llave foránea QUE NO EXISTE EN LA TABLA PADRE...

No nos pones el INSERT que estás tratando de ejecutar, pero por las tablas y llaves que colocas pueden ser muchos los casos:

- Intentar insertar un registro en Repventas, poniendo como director un numero de empleado que no exista en la misma tabla Repventas.

- Intentar insertar un Cliente sin que exista la llave Rep_clie en la tabla Repventas

- Intentar insertar un oficina sin que el campo dir existe en la tabla Repventas

- Intentar insertar un pedido sin que exista el producto en la tabla Productos.

Revisa tu información, ahí debe estar el error.

saludos
Leo.

Etiquetas: registros, tabla
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 08:07.