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.