Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2013, 09:41
Avatar de andres_15_
andres_15_
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
llaves primarias y foreaneas

tengo esta estructura:

Código MySQL:
Ver original
  1. create table facturasxcontratos(
  2. idcontrato varchar(45) not null,
  3. valorcontrato int(50) not null,
  4. idfactura varchar(45) not null,
  5. valorfactura int(50) not null,
  6. total int(60) not null,
  7. foreign key(idcontrato)
  8. references contratos(idcontrato),
  9. foreign key(idfactura)
  10. references facturas(idfactura)
  11.  
  12. );

el problema es que como tengo los datos en las tablas madres me permite ingresar los datos siempre y cuando existan.

lo que quiero es que si existe el numero de contrato 1 y la factura 1, solo me los deje ingresar una vez por factura, es decir que en la proxima fila se puede insertar de nuevo el numero de contrato pero la factura no sera 1 si no 2

agrego que tambien probre asi:

Código MySQL:
Ver original
  1. create table facturasxcontratos(
  2. idcontrato varchar(45) not null,
  3. valorcontrato int(50) not null,
  4. idfactura varchar(45) not null,
  5. valorfactura int(50) not null,
  6. total int(60) not null,
  7. primary key(idcontrato,idfactura),
  8. foreign key(idcontrato)
  9. references contratos(idcontrato),
  10. foreign key(idfactura)
  11. references facturas(idfactura)
  12.  
  13. );

al ingresar los 2 primeros datos me da bien pero voy a insertar un tercer dato y me dice "Error Code: 1062. Duplicate entry '1-3' for key 'PRIMARY'
", pero los campos que tengo son :
Cita:
1 5000 1 1000 4000
1 5000 2 1000 3000

Última edición por andres_15_; 05/02/2013 a las 09:50