Editar columnasALTER TABLE ESTUDIANTES ADD ciudad VARCHAR2(20);
Creación de ID auto-incrementable con secuenciasALTER TABLE ESTUDIANTES MODIFY ID NUMBER(3);
1. Creamos la tabla
2. Creamos una secuenciaCREATE TABLE ADMINISTRADORA(ID NUMBER(5) PRIMARY KEY,NOMBRE VARCHAR2(20),FECHA DATE);
SEQ_ADMIN_ID = Nombre de secuenciaCREATE SEQUENCE SEQ_ADMIN_IDSTART WITH 1INCREMENT BY 1NOMAXVALUE;
START WITH = Valor inicial
INCREMENT BY = Tipo de incremento ejem : [1,2,3,4,5,6][2,4,6,8,10][10,20,30,40,50];
NOMAXVALUE = Valor máximo para los id
3. Creamos un disparador que se ejecuta antes de añadir los datos
TRIG_ADMIN_ID = Nombre de disparadorCREATE TRIGGER TRIG_ADMIN_IDBEFORE INSERT ON ADMINISTRADORAFOR EACH ROWBEGINSELECT SEQ_ADMIN_ID.nextval INTO :new.ID FROM dual;END;
BEFORE INSERT ON = Ejecución de disparador antes de cada fila
BEGIN = Iniciar disparador
SEQ_ADMIN_ID.nextval = Llama al próximo valor en la secuencia
INTO:new.ID = inserta el nuevo en la fila
END = termina el disparador
4. Insertar datos en la tabla
De esta manera el ID se añadirá automáticamente sin repetirse.INSERT INTO ADMINISTRADORA (NOMBRE, FECHA)VALUES ('nombre2', to_date('10/08/1995', 'dd/mm/yyyy'));
Creación de funciones para código repetitivo
1. Creamos la tabla
2. Creamos la función seteando los parámetros.CREATE TABLE viajes(id NUMBER(10) PRIMARY KEY,nombre VARCHAR2(100) NOT NULL,fecha DATE);
agregarViaje = Nombre de la función o procedimientoCREATE OR REPLACE PROCEDURE agregarViaje (id IN NUMBER, nombre IN VARCHAR2, fecha IN DATE)
(id IN NUMBER, .....) = Los parámetros que va recibir la función
2.2 Iniciamos la función y añadimos el código a ejecutar y finalizamos la función
IS BEGIN = Inicia la funciónIS BEGININSERT INTO viaje (id, nombre, fecha)VALUES (id, nombre, fecha);COMMIT;END;
INSERT INTO = Ingresa los datos a la tabla viaje
VALUES = Aquí se pasan los parámetros configurados al inicio de la función
El código debe terminar así, se ejecuta un sola vez y queda guardado en memoria
2.3 Insertar datos a la tabla con el proceso anteriormente almacenadoCREATE OR REPLACE PROCEDURE agregarViaje (id IN NUMBER, nombre IN VARCHAR2, fecha IN DATE)IS BEGININSERT INTO viaje (id, nombre, fecha)VALUES (id, nombre, fecha);COMMIT;END;
CALL = Llama la funciónCALL agregarViaje(100,'Nombre', current_date);
agregarViaje = al nombre de la función
(100,....) = Parámetros a insertar en la tabla
De esta manera solo llamamos agregarViaje() para insertar datos en la tabla y prescindir de las repeticiones de código.
3 Plus Id auto incrementable en la función
3.1 Creamos la secuencia
3.2 Insertamos la secuencia en la funciónCREATE SEQUENCE VIAJE_SEQUENCEMINVALUE 1START WITH 1INCREMENT BY 1;
VIAJE_SEQUENCE.nextval = ID auto incrementableCREATE OR REPLACE PROCEDURE agregarViaje (nombre IN VARCHAR2, fecha IN DATE)IS BEGININSERT INTO viaje (id, nombre, ciudad, fecha)VALUES (VIAJE_SEQUENCE.nextval, nombre, ciudad, fecha);COMMIT;END;
3.3 Insertamos datos en la tabla
De esta manera prescindimos de repeticiones de código y de la inserción del id manual.CALL agregarViaje('Nombre', current_date);