ViniciusConsultor / controlhoras

Automatically exported from code.google.com/p/controlhoras
1 stars 0 forks source link

Errores de Referencia al hacer Reingreso de un funcionario #16

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Cuando un funcionario se da de baja, y se quiere reingresarlo, da errores 
referenciales. 

Original issue reported on code.google.com by juanga...@gmail.com on 7 Feb 2011 at 8:37

GoogleCodeExporter commented 8 years ago
En ppio se recolecto lo siguiente. Dentro del esquema de la BD las siguientes 
tablas hacen referencia al campo NroEmpleado de la tabla empleados.

mysql> select Table_Name, Column_name from columns where Table_schema="trustdb" 
and Column_name in ("NroEmpleado","IdEmpleado");
+---------------------------+-------------+
| Table_Name                | Column_name |
+---------------------------+-------------+
| empleados                 | NroEmpleado |
| escalafonempleado         | NroEmpleado |
| eventoshistorialempleado  | IdEmpleado  |
| extrasliquidacion         | IdEmpleado  |
| extrasliquidacionempleado | IdEmpleado  |
| horarioescalafon          | NroEmpleado |
| horasgeneradasescalafon   | NroEmpleado |
| motivoscambiosdiarios     | NroEmpleado |
+---------------------------+-------------+

No todas las tablas tienen creada una constraint con la referencia. 
1. Borrar las constraint foreign key existentes en estas tablas anteriores.
2. Crear las foreign key siguientes con el Action ON UPDATE CASCADE
Los alters serian los siguientes:

alter table escalafonempleado add foreign key FK_LineasEscalafon (NroEmpleado) 
references empleados(NroEmpleado) on update cascade;
alter table eventoshistorialempleado add foreign key FK_Empleado (IdEmpleado) 
references empleados(NroEmpleado) on update cascade;
alter table extrasliquidacion add foreign key FK_Empleado (IdEmpleado) 
references empleados(NroEmpleado) on update cascade;
alter table horarioescalafon add foreign key FK_Empleado (NroEmpleado) 
references empleados(NroEmpleado) on update cascade;
alter table horasgeneradasescalafon add foreign key FK_Empleado (NroEmpleado) 
references empleados(NroEmpleado) on update cascade;
alter table motivoscambiosdiarios add foreign key FK_Empleado (NroEmpleado) 
references empleados(NroEmpleado) on update cascade;

3. Chequear que funcione las funcionalidades impactadas. Generar nuevamente el 
trustdb.cs y probar nuevamente.

Original comment by juanga...@gmail.com on 7 Feb 2011 at 8:42

GoogleCodeExporter commented 8 years ago
Se corroboro la aplicacion con este cambio sobre las FK, y anduvo bien. 
Se genero nuevamente el trustdb.cs con estos cambios y no tuvo ningun impacto 
en la aplicacion.

Original comment by juanga...@gmail.com on 8 Feb 2011 at 4:47

GoogleCodeExporter commented 8 years ago

Original comment by juanga...@gmail.com on 21 Apr 2011 at 4:28