Taller de Base de Datos Clase 4 Secuencias
Que son las Secuencias y para que nos pueden servir? Son objetos de la BD que nos sirven para crear valores enteros de forma incrementar o decreciente Nos sirven en todo el ámbito de la bd no tan solo en una tabla. Es posible resetearlo cuando estimemos conveniente Es posible realizar un ciclo con ellos
IDENTITY VS SEQUENCE IDENTITY SEQUENCE DEPENDE DE LA TABLA NO DE DEPENDE DE UNA TABLA ES UNA PROPIEDAD DE UN CAMPO ES UN OBJETO DE LA BD NO SE PUEDE REALIZAR UN CICLO PERMITE UN CICLO NO SE PUEDE DEFINIR EL VALOR MAXIMO SE PUEDE ESTABLER UN VALOR MAXIMO
Como es su declaración ? CREATE SEQUENCE [schema_name . ] sequence_name [ AS [ built_in_integer_type | user-defined_integer_type ] ] [ START WITH <constant> ] [ INCREMENT BY <constant> ] [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ] [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ <constant> ] } | { NO CACHE } ] [ ; ]
CREAR UNA SEQUENCE QUE AUMENTE EN 1 CREATE SEQUENCE SQ_PRODUCTO START WITH 1 INCREMENT BY 1 CREAR UNA SEQUENCE QUE DISMINUYA EN 1 START WITH 0 INCREMENT BY -1
CREAR UNA SEQUENCE QUE AUMENTE EN 5 CREATE SEQUENCE SQ_PRODUCTO START WITH 5 INCREMENT BY 5 CREAR UNA SEQUENCE QUE EMPIESE START WITH 0 INCREMENT BY -1 Información de un objeto sequence SELECT * FROM sys.sequences WHERE name ='sq_producto'
Modificar un sequence ALTER SEQUENCE sq_producto RESTART WITH 100 INCREMENT BY 50 MINVALUE 50 MAXVALUE 200 NO CYCLE NO CACHE
Eliminar un sequence DROP SEQUENCE SP_PRODUCTO
Conocer el siguiente valor de un sequence SELECT NEXT VALUE FOR SQ_PRODUCTO Agregar un sequence como default a un campo de un atabla ALTER TABLE PRODUCTO ADD CONSTRAINT DF_PRODUCTO DEFAULT NEXT VALUE FOR SQ_PRODUCTO FOR COD_PRODUCTO
Insertar un valor del sequence a una tabla INSERT INTO PRODUCTO(CO_PRODUCTO,DESCRIPCION) VALUES(next value for sq_producto, 'LECHE') Restaurar una sequence ALTER SEQUENCE SQ_PRODUCTO RESTART WITH 100
Evaluación 15% de la primera prueba
Se solicita Crear todas la tablas Crear todas las constraint de Primary Key y Foreing Key Crear por lo menos 1 contrain de Default, Unique , Ckeck (donde estime necesario) Crear una sequence que se inicie en 10000 con incremento 1 sin valor máximo, no cíclica Realizar 10 Insert en la tabla Venta y ocupar la sequence para el campo cod_venta