Hola, porfavor Ayudenme con este problemita :(
Tengo la base de datos, con sus tablas y atributos, que previamente debo llenar (ingresar registos) pero mi problema son los PROCEDIMIENTOS ALMACENADOS y un TRIGGER (que no se como hacerlos), los cuales deben cumplir los siguentes requisitos:
Tengo que, mediante 2 Procedimientos Almacenados y 1 Trigger, Inscribir a un curso nuevo y asociarle todos los alumnos dados hasta cumplir con el total de vacantes que tiene el curso e indicar que se ha cumplido con esta restricción. (mi motor es ORACLE y conectarlo a PHP, pero eso PUEDO HACERLO Yo :) )
Entonces decidi que los procedimientos hagan estas funciones:
Procedimiento Almacenado (1):Cada vez que se agregue un alumno al curso, el contador de current_alumnos deberá incrementarse.
Procedimiento Almacenado (2): Cuando sea agregado un alumno al curso se actualizara la Lista dejando ordenados a los alumnos por Apellido (alfabéticamente).
Triggers: Mostrará en Pantalla que el límite de alumnos por curso fue alcanzado y que no puede ingresar más.
Si alguien entendido en Procedimientos Almacenados y Triggers Porfavor puede ayudarme, le agradeceria mucho. Dejo las Tablas que llevo para que se entienda la idea. Desde ya muchas gracias y acepto cualquier sugerencia.
Ojala se entienda, pongo todo por si alguien se confunde.... Solo necesito ayuda con los procedimientos y el trigger.... Ojala alguien sepa, gracias.
//Las tablas aca Abajao //
CREATE SEQUENCE student_sequence
START WITH 10000
INCREMENT BY 1;
CREATE TABLE students (
id NUMBER(5) PRIMARY KEY,
first_name VARCHAR2(20),
last_name VARCHAR2(20),
major VARCHAR2(30),
current_credits NUMBER(3)
);
INSERT INTO students (id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Scott', 'Smith',
'Computer Science', 11);
INSERT INTO students (id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Margaret', 'Mason',
'History', 4);
INSERT INTO students (id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Joanne', 'Junebug',
'Computer Science', 8);
INSERT INTO students (id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Manish', 'Murgatroid',
'Economics', 8);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES(student_sequence.NEXTVAL, 'Patrick', 'Poll',
'History', 4);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Timothy', 'Taller',
'History', 4);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Barbara', 'Blues',
'Economics', 7);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'David', 'Dinsmore',
'Music', 4);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Ester', 'Elegant',
'Nutrition', 8);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Rose', 'Riznit',
'Music', 7);
INSERT INTO STUDENTS(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Rita', 'Razmataz',
'Nutrition', 8);
INSERT INTO students(id, first_name, last_name, major,
current_credits)
VALUES (student_sequence.NEXTVAL, 'Shay', 'Shariatpanahy',
'Computer Science', 3);
CREATE TABLE classes (
department CHAR(3),
course NUMBER(3),
description VARCHAR2(2000),
max_students NUMBER(3),
current_students NUMBER(3),
num_credits NUMBER(1),
room_id NUMBER(5),
CONSTRAINT classes_department_course
PRIMARY KEY (department, course)
);
INSERT INTO classes(department, course, description, max_students,
current_students, num_credits, room_id)
VALUES ('HIS', 101, 'History 101', 30, 11, 4, 20000);
CREATE TABLE registered_students (
student_id NUMBER(5) NOT NULL,
department CHAR(3) NOT NULL,
course NUMBER(3) NOT NULL,
grade CHAR(1),
CONSTRAINT rs_grade
CHECK (grade IN ('A', 'B', 'C', 'D', 'E')),
CONSTRAINT rs_student_id
FOREIGN KEY (student_id) REFERENCES students (id),
CONSTRAINT rs_department_course
FOREIGN KEY (department, course)
REFERENCES classes (department, course)
);
INSERT INTO registered_students (student_id, department, course,
grade)
VALUES (10000, 'CS', 102, 'A');