36 - Alterar secuencia (alter sequence)


Primer problema:

Una empresa registra los datos de sus empleados en una tabla llamada "empleados".

1- Elimine la tabla "empleados":

  drop table empleados;

2- Cree la tabla:

 create table empleados(
  legajo number(3),
  documento char(8) not null,
  nombre varchar2(30) not null,
  primary key(legajo)
 );

3- Elimine la secuencia "sec_legajoempleados" y luego créela estableciendo el valor mínimo (1), máximo (210), valor inicial (206), valor de incremento (2) y no circular. Finalmente inicialice la secuencia.

4- Ingrese algunos registros, empleando la secuencia creada para los valores de la clave primaria.

 insert into empleados
  values (sec_legajoempleados.currval,'22333444','Ana Acosta');
 insert into empleados
  values (sec_legajoempleados.nextval,'23444555','Betina Bustamante');
 insert into empleados
  values (sec_legajoempleados.nextval,'24555666','Carlos Caseros');

5- Recupere los registros de "libros" para ver los valores de clave primaria.

6- Vea el valor actual de la secuencia empleando la tabla "dual"

7- Intente ingresar un registro empleando "nextval":

 insert into empleados
  values (sec_legajoempleados.nextval,'25666777','Diana Dominguez');

Oracle muestra un mensaje de error indicando que la secuencia ha llegado a su valor máximo.

8- Altere la secuencia modificando el atributo "maxvalue" a 999.

9- Obtenga información de la secuencia.

10- Ingrese el registro del punto 7.

11- Recupere los registros.

12- Modifique la secuencia para que sus valores se incrementen en 1.

13- Ingrese un nuevo registro:

 insert into empleados
  values (sec_legajoempleados.nextval,'26777888','Federico Fuentes');

14- Recupere los registros.

15- Elimine la secuencia creada.

16- Consulte todos los objetos de la base de datos que sean secuencias y verifique que "sec_legajoempleados" ya no existe.

Ver solución

  drop table empleados;

 create table empleados(
  legajo number(3),
  documento char(8) not null,
  nombre varchar2(30) not null,
  primary key(legajo)
 );

 drop sequence sec_legajoempleados;

 create sequence sec_legajoempleados
  start with 206
  increment by 2
  maxvalue 210
  minvalue 1;

 select sec_legajoempleados.nextval from dual;

 insert into empleados
  values (sec_legajoempleados.currval,'22333444','Ana Acosta');
 insert into empleados
  values (sec_legajoempleados.nextval,'23444555','Betina Bustamante');
 insert into empleados
  values (sec_legajoempleados.nextval,'24555666','Carlos Caseros');

 select *from empleados;

 select sec_legajoempleados.currval from dual;

 insert into empleados
  values (sec_legajoempleados.nextval,'25666777','Diana Dominguez');

 alter sequence sec_legajoempleados maxvalue 999;

 select *from all_sequences where sequence_name='SEC_LEGAJOEMPLEADOS';

 insert into empleados
  values (sec_legajoempleados.nextval,'25666777','Diana Dominguez');

 select *from empleados;

 alter sequence sec_legajoempleados increment by 1;

 insert into empleados
  values (sec_legajoempleados.nextval,'26777888','Federico Fuentes');

 select *from empleados;

 drop sequence sec_legajoempleados;

 select object_name,object_type
  from all_objects
  where object_type='SEQUENCE';

 


Retornar