Violación de restricción de integridad
Resuelto
Farhat1985
-
Farhat1985 Mensajes publicados 22 Estado Miembro -
Farhat1985 Mensajes publicados 22 Estado Miembro -
Hola,
Tengo dos tablas que crear en Oracle
tabla departamento :
CREATE TABLE dept(
DEPTNO NUMBER(2),
DNAME CHAR(20),
LOC CHAR(20),
constraint p1 primary key(deptno),
constraint c check( dname in ('ACCOUNTING','RESEARCH','SALLES','OPERATIONS')));
y una tabla empleado :
create table emp (
empno number (5),
ename varchar (40),
job varchar(40),
mgr number(5),
hiredate date,
sal number(6),
comm number(6),
deptno number(2),
CONSTRAINT E_CLEP PRIMARY KEY(EMPNO),
CONSTRAINT E_CLET1 FOREIGN KEY(DEPTNO) REFERENCES
DEPT(DEPTNO),
CONSTRAINT E_CLET2 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO));
y los siguientes datos para la tabla dept :
insert into dept values (10,'ACCOUNTING','NEW-YORK');
insert into dept values (20,'RESEARCH','Dallas');
insert into dept values (30,'SALLES','Chicago');
insert into dept values (40,'OPERATIONS','Boston');
insert into dept values (50,'SALLES','Tunis');
hasta aquí todo va bien
pero el problema cuando intento insertar datos en la tabla emp :
insert into emp values(7499,'ALLEN','SALESMAN',7698,'20/02/81',160000,30000,30);
cuando ejecuto en sql+ este mensaje de error aparece en el terminal :
ORA:02291 : violación de restricción de integridad <base.E_CLET2> clave padre no encontrada.
Gracias de antemano por su ayuda.
Tengo dos tablas que crear en Oracle
tabla departamento :
CREATE TABLE dept(
DEPTNO NUMBER(2),
DNAME CHAR(20),
LOC CHAR(20),
constraint p1 primary key(deptno),
constraint c check( dname in ('ACCOUNTING','RESEARCH','SALLES','OPERATIONS')));
y una tabla empleado :
create table emp (
empno number (5),
ename varchar (40),
job varchar(40),
mgr number(5),
hiredate date,
sal number(6),
comm number(6),
deptno number(2),
CONSTRAINT E_CLEP PRIMARY KEY(EMPNO),
CONSTRAINT E_CLET1 FOREIGN KEY(DEPTNO) REFERENCES
DEPT(DEPTNO),
CONSTRAINT E_CLET2 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO));
y los siguientes datos para la tabla dept :
insert into dept values (10,'ACCOUNTING','NEW-YORK');
insert into dept values (20,'RESEARCH','Dallas');
insert into dept values (30,'SALLES','Chicago');
insert into dept values (40,'OPERATIONS','Boston');
insert into dept values (50,'SALLES','Tunis');
hasta aquí todo va bien
pero el problema cuando intento insertar datos en la tabla emp :
insert into emp values(7499,'ALLEN','SALESMAN',7698,'20/02/81',160000,30000,30);
cuando ejecuto en sql+ este mensaje de error aparece en el terminal :
ORA:02291 : violación de restricción de integridad <base.E_CLET2> clave padre no encontrada.
Gracias de antemano por su ayuda.
1 respuesta
Hola,
Necesitas añadir a los usuarios en orden jerárquico.
Para crear un empleado, primero hay que crear a su manager en la base (E_CLET2 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO).
El 7698 debe existir para crear el 7499
Saludos
Un extranjero es un amigo que aún no hemos conocido.
Necesitas añadir a los usuarios en orden jerárquico.
Para crear un empleado, primero hay que crear a su manager en la base (E_CLET2 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO).
El 7698 debe existir para crear el 7499
Saludos
Un extranjero es un amigo que aún no hemos conocido.
Farhat1985
Mensajes publicados
22
Estado
Miembro
¡Gracias! :)