Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/05/2012, 09:45
anrodse
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: Evitar AUTOINCREMENT

Lo siento, pero no me funciona y no se porque. Mis tablas son estas:
Código:
CREATE TABLE Colaborador (
	  OID INTEGER PRIMARY KEY AUTO_INCREMENT
	, Direccion VARCHAR (50) NOT NULL
	, Localidad VARCHAR (50) NOT NULL
	, Provincia VARCHAR (50) NOT NULL
	, CP VARCHAR (5) NOT NULL
	, telefonoFijo VARCHAR (15)
	, telefonoMovil VARCHAR (15)
	, Email VARCHAR(50)
);

CREATE TABLE C_Persona (
	  OID INTEGER
	, DNI VARCHAR (9) NOT NULL UNIQUE
	, Nombre VARCHAR (50) NOT NULL
	, Apellidos VARCHAR (256) NOT NULL
	, FechaNacimiento DATE NOT NULL
	, Sexo CHAR
	, PRIMARY KEY (OID)
	, CONSTRAINT Fk_OIDCPersona FOREIGN KEY (OID)
				REFERENCES Colaborador (OID)
);
y estas mis insercciones:

Código:
INSERT INTO Colaborador VALUES (0,'Sin dirección', '', '', '00000', '', '', '');
INSERT INTO C_Persona VALUES (0, '00000000a', 'Anónimo', '', '0001-01-01', 'M');
Cuando lo hago no me funciona. Me da error
INSERT INTO C_Persona VALUES ( 0, '00000000a', 'Anónimo', '', '0001-01-01', 'M' );

MySQL ha dicho: Documentación
#1452 - Cannot add or update a child row: a foreign key constraint fails (`diaketas`.`c_persona`, CONSTRAINT `Fk_OIDCPersona` FOREIGN KEY (`OID`) REFERENCES `colaborador` (`OID`))

Si miro la tabla Colaborador el OID no esta a cero a pesar de que se lo he indicado.

P.D: No, tranquilo, no quiero hacer nada extraño como no dejar IDs perdidos o cosas asi. jejje
Solo quiero tener un colaborador anonimo con ID = 0 siempre, y el AUTOINCREMENT ademas de empezar a contar por 1, si meto una y la borro la siguiente no sera 1.