Oracle - disminucion de codigo

   
Vista:

disminucion de codigo

Publicado por joao (20 intervenciones) el 05/11/2015 23:48:03
tabla

ayuden alguien sabra el codigo o procedimiento para hacer lo siguiente:
como veran es la ejecucion de una tablas con sus datos en sus respectivo campos
lo q quisiera hacer es lo sgte:
digamos q elimino toda la fila del codigo 001, quisiera saber si sabrian que codigo poner o hacer para que toda la fila del codigo 002 y 003 disminuyan o resten -1 y asi el codigo 002 pase hacer el 001 y el 003 sea ahora 002 logico q manteniendo sus datos correspondientes?
si sabrian como hacer eso o q procedimiento hacer, se los agradeceria amigos, ayudenme por favor, gracias de antemano, saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

disminucion de codigo

Publicado por Rafael (177 intervenciones) el 06/11/2015 09:00:47
Supongo que cuando dices eliminas el codigo 001 lo haces asi:
1
DELETE FROM <TABLA> WHERE CODIGO_EMPLEADO = '001';

Pues luego para reacomodar el resto disminuyendo
1
UPDATE <TABLA> SET CODIGO_EMPLEADO =  LPAD(TO_CHAR(TO_NUMBER(CODIGO_EMPLEADO) - 1), 3, '0');

Aqui puedes tener problemas si el registro tiene hijos en otras tablas ya que seguramente codigo_empleado es la primary key y esta heredada a otras tablas de no ser asi te funcionara.

Pero la mayor duda es para que querrias hacer eso?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

disminucion de codigo

Publicado por Luis (232 intervenciones) el 09/11/2015 16:27:45
Hola Joao


seria con un update :

UPDATE empleado e
SET e.codigo_empleado = LPAD( to_number(e.codigo_empleado)-1 ,3,'0' )
WHERE e.codigo_empleado >= '001';


Saludos


Luis Pablo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar