Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

ayuda con update cascade

Estas en el tema de ayuda con update cascade en el foro de Mysql en Foros del Web. PORFAVOR SI ALGUIEN ME PUEDE AYUDAR A CORREGIR ESTE CODIGO EN MYSQL YA QUE NO ME DEJA METER LOS DATOS A MIS TABLAS, MARCA ERROR ...
  #1 (permalink)  
Antiguo 04/09/2009, 10:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
ayuda con update cascade

PORFAVOR SI ALGUIEN ME PUEDE AYUDAR A CORREGIR ESTE CODIGO EN MYSQL
YA QUE NO ME DEJA METER LOS DATOS A MIS TABLAS, MARCA ERROR EN EL UPDATE Y FOREIGN KEY

AKI EL CODIGO:
create database Practica2;
use Practica2;

create table empleado(
NOMBRE VARCHAR(15) NOT NULL,
INC CHAR ,
APELLIDO VARCHAR(15) NOT NULL,
NSS CHAR(9) NOT NULL,
FECHA_NCTO DATE,
DIRECCION VARCHAR(30),
SEXO CHAR,
SALARIO DECIMAL(10,2),
NSS_SUPERV CHAR(9),
ND INT,
constraint pk_emplead
primary key(NSS)
);


create table departamento(
NOMBRED VARCHAR(15) NOT NULL,
NUMEROD INT(50) NOT NULL,
NSS_JEFE VARCHAR (9) NOT NULL,
FECHA_INICIO_JEFE DATE,
constraint pk_depa
primary key (NUMEROD),
constraint sk_depart
UNIQUE (NOMBRED),
constraint fk_dep_jefe
foreign key(NSS_JEFE)
references empleado(NSS)
on delete cascade on update cascade
);


create table LOCALIZACIONES_DEPT(
NUMEROD INT NOT NULL,
LOCALIZACIOND VARCHAR(15) NOT NULL,
constraint pk_loc
primary key(NUMEROD,LOCALIZACIOND),
constraint fk_locadep
foreign key(NUMEROD)
references departamento(NUMEROD)
on delete cascade on update cascade
);




create table PROYECTO(
NOMBREP VARCHAR(15) NOT NULL,
NUMEROP INT NOT NULL,
LOCALIZACIONP VARCHAR(15) NOT NULL,
NUMD INT NOT NULL,
constraint pk_proy
primary key (NUMEROP),
constraint sk_proyec
UNIQUE (NOMBREP),
constraint fk_proyect
foreign key (NUMD)
references departamento(NUMEROD)
on delete cascade on update cascade
);


create table TRABAJA_EN(
NSSE VARCHAR(9) NOT NULL,
NP INT NOT NULL,
HORAS FLOAT NOT NULL,
constraint pk_trab
primary key (NSSE,NP),
constraint fk_trabaja
foreign key (NSSE)
references empleado(NSS)
on delete cascade on update cascade,
constraint fk_trabajan
foreign key (NP)
references proyecto(NUMEROP)
on delete cascade on update cascade
);



create table DEPENDIENTE(
NSSE varchar(9) NOT NULL,
NOMBRE_DEPENDIENTE varchar(15) NOT NULL,
SEXO char(1),
FECHA_NCTO date,
PARENTESCO varchar(8),
constraint pk_depen
primary key(NSSE,NOMBRE_DEPENDIENTE),
constraint fk_depend
foreign key(NSSE)
references empleado(NSS)
on delete cascade on update cascade
);
  #2 (permalink)  
Antiguo 04/09/2009, 12:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda con update cascade

el update de que tabla?

Las tablas se crean bien.
puedes darnos un ejemplo?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 04/09/2009, 13:02
 
Fecha de Ingreso: septiembre-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: ayuda con update cascade

Es que las tablas se crean bien y sin ningun problema, y al insertar el primer dato en cualquier tabla lo acepta sin problemas

el problema es cuando queremos insertar datos en todas las tablas y ya no nos deja..nos sale error en el update cascade

queremos saber..si estamos colocando mal el codigo, o nos hace falta algunas instrucciones
  #4 (permalink)  
Antiguo 04/09/2009, 13:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda con update cascade

pon un ejemplo de las inserciones que tratas de hacer y donde se cae.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 19/11/2009, 03:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ayuda con update cascade

Cita:
Iniciado por DARIOPAVEL Ver Mensaje
Es que las tablas se crean bien y sin ningun problema, y al insertar el primer dato en cualquier tabla lo acepta sin problemas

el problema es cuando queremos insertar datos en todas las tablas y ya no nos deja..nos sale error en el update cascade

queremos saber..si estamos colocando mal el codigo, o nos hace falta algunas instrucciones



Creo que tu problema está en las restricciones de integridad referencial ( on delete cascade on update cascade). Prueba a quitar la integridad referencial, y luego prueba a insertar. Si te funciona, vuelve a ponerlas, pero de forma correcta. ¡Hasta luego!
  #6 (permalink)  
Antiguo 19/11/2009, 05:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con update cascade

Por lo que parece, la base planeada (que parece sacada del ejemplo de Peter Chen en su paper), adolece de algunos defectos de diseño.
Pero en lo que hace a el llenado de tablas, debes tener claros algunos detalles:

1. Si declaras una FK en una tabla, y ese campo está declarado como NOT NULL, el valor a ingresar en ese campo en un nuevo registro debe existir previamente a ese INSERT en la tabla origen.

2. Cuando tienes un conjunto de dependencias entre tablas, las dependencias funcionales deben ser llenadas desde determinante a determinado, y no debe faltar ningún paso. En tu caso las dependencias serían:
Cita:
empleado --> departamento --> LOCALIZACIONES_DEPT
empleado --> departamento --> PROYECTO --> TRABAJA_EN
empleado --> DEPENDIENTE
3. Aunque parezca obvio mencionarlo, cuando declaras un ON UPDATE CASCADE, lo único que estás diciendo es que en caso de actualizar la PK referida por una FK, la FK se actualice, pero esto no quiere decir que en caso de no existir, se inserte... (es una obviedad, pero ha habido quieres creían que se insertaba en forma automática).

Resumiendo: Si quieres que los inserts funcionen ingresa las tablas en este orden:
Cita:
1. empleado
2. departamento
3. DEPENDIENTE
4. LOCALIZACIONES_DEPT
5. TRABAJA_EN
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.