Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2012, 14:05
maire
 
Fecha de Ingreso: agosto-2005
Mensajes: 97
Antigüedad: 19 años, 4 meses
Puntos: 1
como admitir duplicidad

tengo esta base de datos, el INSERT en la tabla CLIENTES, cuando pongo el regitro:
(1050204, 'GERMAN', 'RODRIGUEZ', 27155999), me da error, yo se que porque ya antes puse a esta persona con el mismo DNI, entonces al haber duplicidad da error, como hago entonces para que en la tabla CLIENTES se pueda admitir duplicidad, la base es esta:

el error es: #1452 - Cannot add or update a child row: a foreign key constraint fails (`aseguradora`.`clientes`, CONSTRAINT `clientes_ibfk_1` FOREIGN KEY (`DNI_IDDNI`) REFERENCES `dni` (`IDDNI`) ON DELETE CASCADE ON UPDATE CASCADE)


CREATE DATABASE IF NOT EXISTS aseguradora;
USE aseguradora;

CREATE TABLE DNI(
IDDNI INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
DNI INT UNSIGNED NOT NULL
);

/* INSERT DNI */
INSERT INTO DNI(DNI)
VALUES
(31052111),
(29015455),
(27155999),
(26653555),
(31548999),
(27055151),
(27666666);


CREATE TABLE CLIENTES(
NUMSEGURO INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
CLIENTENOMBRE VARCHAR (50),
CLIENTEAPELLIDO VARCHAR (50),
DNI_IDDNI INT UNSIGNED,
FOREIGN KEY (DNI_IDDNI) REFERENCES DNI(IDDNI)
ON DELETE CASCADE ON UPDATE CASCADE
);


/*INSERT CLIENTES */
INSERT INTO CLIENTES(NUMSEGURO, CLIENTENOMBRE, CLIENTEAPELLIDO, DNI_IDDNI)
VALUES
(1050201, 'IVAN', 'TROSIC', 31052111),
(1050202, 'NICOLAS', 'FERNANDEZ', 29015455),
(1050203, 'LAURA', 'GONZALEZ', 27155999),
(1050204, 'GERMAN', 'RODRIGUEZ', 2653555),
(1050205, 'GERMAN', 'RODRIGUEZ', 26653555),
(1050206, 'PABLO', 'FLORES', 31548999),
(1050207, 'LUCAS', 'DEL AGUILA', 27055151),
(1050208, 'DIEGO', 'SATELIER', 27666666);



CREATE TABLE AUTO (
IDAUTO INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
AUTO VARCHAR (20) NOT NULL,
CLIENTES_NUMSEGURO INT UNSIGNED,
FOREIGN KEY (CLIENTES_NUMSEGURO) REFERENCES CLIENTES (NUMSEGURO),
CLIENTES_DNI_IDDNI INT UNSIGNED,
FOREIGN KEY (CLIENTES_DNI_IDDNI) REFERENCES DNI(IDDNI)
ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE VALOR(
IDVALOR INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
VALOR INT NOT NULL,
AUTO_IDAUTO INT UNSIGNED,
FOREIGN KEY(AUTO_IDAUTO) REFERENCES AUTO (IDAUTO)
ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE PLAN(
IDPLAN INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
PLAN VARCHAR (20) NOT NULL,
AUTO_IDAUTO INT UNSIGNED,
FOREIGN KEY(AUTO_IDAUTO) REFERENCES AUTO (IDAUTO)
ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE FECHA(
IDFECHA INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
FECHA DATE,
AUTO_IDAUTO INT UNSIGNED,
FOREIGN KEY(AUTO_IDAUTO) REFERENCES AUTO (IDAUTO)
ON DELETE CASCADE ON UPDATE CASCADE
);

Última edición por maire; 02/06/2012 a las 15:16