ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Crear tablas base de datos


Enviado por   •  25 de Agosto de 2017  •  Tareas  •  703 Palabras (3 Páginas)  •  84 Visitas

Página 1 de 3

LABORATORIO N° 8

Tablas

Create table ALUMNOS(

DN_A INT,

NOMBRE_A VARCHAR(30),

FECHA_NACIMIENTO DATE

);

ALTER TABLE ALUMNOS ADD (

  CONSTRAINT ALUMNO_PK PRIMARY KEY (DN_A));

Create table CURSO(

DN_C INT PRIMARY KEY NOT NULL,

NOMBRE_C VARCHAR(30),

COSTO INT

);

create table Inscribe (

    dn_a integer not null,

    dn_c integer,

    nota integer,

    fecha_ing date,

    foreign key (dn_a) references Alumnos(dn_a)

);

Preguntas

1)

Creamos una secuencia que empiece en 1, y luego creamos un trigger que antes de insertar o actualizar realice un autoincremento de 1 en 1 a la clave de alumnos( DN_C)

CREATE SEQUENCE ALUMNO_SEQ START WITH 1;

CREATE OR REPLACE TRIGGER AUTOIN

  BEFORE INSERT ON ALUMNOS

  FOR EACH ROW

BEGIN

  SELECT ALUMNO_SEQ.nextval

  INTO :new.DN_A

  FROM dual;

END;

INSERT INTO ALUMNOS VALUES(1,'EDUARDO',date'1995-09-23');

INSERT INTO ALUMNOS VALUES(1,'CHIRSTOFER',date'1996-05-01');

SELECT * FROM ALUMNOS;

4        EDUARDO        23/09/95

5        CHIRSTOFER        01/05/96

6        juan                03/02/99

2)

Creamos un trigger que verifica que cuando se actualice un alumnos la fecha ingresada no sea inferior a la que ya se encontraba.

create or replace trigger Ver_FechaNac before update on Alumnos

for each row

begin

    if(:new.fecha_nacimiento<:old.fecha_nacimiento) then

    raise_application_error(-20000,'no puede ingresar una fecha de nacimiento menor a la que tenia');

    end if;

end;

insert into Alumnos values(1,'juan',to_date('1999/2/3','YYYY/MM/DD'));

update Alumnos set fecha_nacimiento =TO_DATE('1995/2/3','YYYY/MM/DD') where dn_a=6

update Alumnos set fecha_nacimiento =TO_DATE('1995/2/3','YYYY/MM/DD') where dn_a=6

Informe de error -

ORA-20000: no puede ingresar una fecha de nacimiento menor a la que tenia

ORA-06512: at "SYSTEM.VER_FECHANAC", line 3

ORA-04088: error during execution of trigger 'SYSTEM.VER_FECHANAC'

3)

Usamos un cursor el cual buscaba cuantas veces aparecia el dn_c que se quería inscribir un ramos, si este aparecia mas de 3 veces el trigger mostraba un error, que decía que el alumnos no podría inscribir mas de 3 ramos.

create or replace trigger Ver_nro_ramos_Inscritos before  insert on Inscribe

for each row

declare

    CURSOR CONT IS

...

Descargar como (para miembros actualizados)  txt (4.7 Kb)   pdf (46.7 Kb)   docx (14.1 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com