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

Problema con llave foranea en un insert

Estas en el tema de Problema con llave foranea en un insert en el foro de Bases de Datos General en Foros del Web. Tengo una tabla llamada contrato_cliente que tiene una serie de parametros de otras tablas quedando en la tabla contrato_cliente como foraneas (rut_cliente,id_comuna, id_ciudad, id_estado_contrato_cliente, etc). ...
  #1 (permalink)  
Antiguo 23/11/2009, 12:17
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema con llave foranea en un insert

Tengo una tabla llamada contrato_cliente que tiene una serie de parametros de otras tablas quedando en la tabla contrato_cliente como foraneas (rut_cliente,id_comuna, id_ciudad, id_estado_contrato_cliente, etc). El problema es que cuando trato de hacer mi insert me arroja:
Cannot add or update a child row: a foreign key constraint fails (`monterredondo/contrato_cliente`, CONSTRAINT `contrato_cliente_ibfk_15` FOREIGN KEY (`rut_cliente`) REFERENCES `cliente` (`rut_cliente`) ON UPDATE CASCADE)

El rut_cliente que estoy agregando en mi tabla contrato_cliente esta tambien ingresado en mi tabla cliente y el contenido es el mismo que trato ingresar pero nose por que me alega.

Aqui mi consulta:

Código PHP:
INSERT INTO contrato_cliente VALUES id_contrato_cliente"ID"rut_cliente ="78659560",direccion_servicio_cliente"direccion",id_comuna=1,id_ciudad=1,resumen_contrato_cliente="resumen_contrato",fecha_inicio_contrato_cliente="0000-00-00",fecha_termino_contrato_cliente="0000-00-00",id_tipo_contrato_cliente=1,valor_neto_retiro="2",valor_neto_arriendo_contenedor="3",valor_neto_retiro_especial="4",tonelaje_maximo_retiro_cliente="5",valor_neto_retiro_excedente_cliente="6",cantidad_retiro_contrato="7"id_estado_contrato_cliente=1,detalle_guia_servicio="detalle"id_tipo_contenedor1,id_tipo_de_cobro=1
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"

Última edición por Capote; 23/11/2009 a las 12:34
  #2 (permalink)  
Antiguo 25/11/2009, 10:16
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Problema con llave foranea en un insert

nunca habia visto un insert asi, ensaya

insert into tabla(campo1, campo2, ...., campoN)
values(value1,value2,.....,valueN)

pues en teoria lo tuyo esta bueno, verifica el uso de comillas tambien
  #3 (permalink)  
Antiguo 25/11/2009, 11:51
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, 5 meses
Puntos: 2658
Respuesta: Problema con llave foranea en un insert

La sentencia está mal escrita, en todo caso podría ser algo así:
Código sql:
Ver original
  1. INSERT INTO contrato_cliente  
  2. VALUES ( "ID",  "78659560",  "direccion", 1, 1,
  3.              "resumen_contrato",
  4.              "0000-00-00", "0000-00-00", 1,
  5.              "2", "3", "4", "5", "6", "7", 1,
  6.              "detalle", 1, 1);

Por otro lado, el error que te está marcando es simple: Estás tratando de ingresar un contrato de cliente, sin ingresar primero el cliente, ya que el valor dado al campo rut_cliente no existe en la tabla origen.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/11/2009 a las 15:57
  #4 (permalink)  
Antiguo 25/11/2009, 15:01
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema con llave foranea en un insert

Efectivamente estaba mal en la sintaxis, la corregí y funciono perfecto


Gracias!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
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:28.