Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 9
1

Триггер на подсчет студентов для таблицы факультет из таблицы студент

08.05.2016, 13:46. Показов 1282. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается создать рабочий триггер на подсчет количества студентов студентов
Дано 2 таблицы:
1. FACULTY
2. STUDENT

Создание таблиц:
1.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE  "STUDENT" 
   (    "N_STUDENT" NUMBER NOT NULL ENABLE, 
    "N_FACULTY" NUMBER, 
    "MODEOFSTUDY" VARCHAR2(20) NOT NULL ENABLE, 
    "C_LAST_NAME" VARCHAR2(20) NOT NULL ENABLE, 
    "C_FIRST_NAME" VARCHAR2(20) NOT NULL ENABLE, 
    "C_SECOND_NAME" VARCHAR2(20), 
    "SPECIALTY" VARCHAR2(20) NOT NULL ENABLE, 
    "COURSE" NUMBER, 
    "N_GROUP" NUMBER, 
     CONSTRAINT "STUDENT_PK" PRIMARY KEY ("N_STUDENT") ENABLE
   ) ;ALTER TABLE  "STUDENT" ADD CONSTRAINT "STUDENT_FK1" FOREIGN KEY ("N_FACULTY")
      REFERENCES  "FACULTY" ("N_FACULTY") ON DELETE SET NULL ENABLE;
2.
SQL
1
2
3
4
5
6
CREATE TABLE  "FACULTY" 
   (    "N_FACULTY" NUMBER NOT NULL ENABLE, 
    "C_FACULTY" VARCHAR2(20) NOT NULL ENABLE, 
    "COUNT_STUDENT" NUMBER, 
     CONSTRAINT "FACULTY_PK" PRIMARY KEY ("N_FACULTY") ENABLE
   ) ;
Вот пока что какой не какой, не рабочий триггер.
Oracle XE
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE OR REPLACE TRIGGER COUNT_SF
AFTER INSERT OR UPDATE OR DELETE OF COUNT_STUDENT ON FACULTY
BEGIN
DECLARE STUDENT NUMBER(10);
DECLARE N_COUNT_STUDENT NUMBER(10);
  IF deleting THEN
    STUDENT = OLD.N_STUDENT;
  ELSE
    STUDENT = NEW.N_STUDENT;
 
  SELECT COUNT(N_STUDENT) 
    FROM STUDENT
   WHERE N_STUDENT=:STUDENT
   GROUP BY N_FACULTY
    INTO :N_COUNT_STUDENT;
 
  UPDATE FACULTY
     SET COUNT_STUDENT = :N_COUNT_STUDENT
   WHERE STUDENT = :STUDENT;
END;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2016, 13:46
Ответы с готовыми решениями:

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это...

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это...

Триггер для таблицы
Добрый день. начал ковырять триггеры, кое-что написал, но не пойму, почему в чем ошибка. Есть...

Триггер для таблицы
Всем привет! Есть три таблицы Книга(ид_книги, год выпуска...) Автор(ид_автора, год рождения....),...

2
763 / 664 / 194
Регистрация: 24.11.2015
Сообщений: 2,158
08.05.2016, 14:06 2
Ваши студенты и факультеты все равно, что подразделения и сотрудники. Посмотрите тему Мутирующая таблица. PL/SQL ORALCE. Там полностью описано, как действовать в таких случаях. То, что Вы пишете, неправильно, так как вызывает мутации таблиц

Добавлено через 6 минут
И вообще неправильно. Вы используете в операторах поля, которых нет в таблицк
1
1 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 9
08.05.2016, 21:03  [ТС] 3
Спасибо, помогло)
0
08.05.2016, 21:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2016, 21:03
Помогаю со студенческими работами здесь

Триггер для изменения самой таблицы
Как сделать триггер на update чтобы апдейтилась сама таблица

Триггер на INSERT для другой таблицы
Нужно после вставки в таблицу CheckProduct обновить данные в другой таблице Product Пишу триггер...

Парсинг таблицы с сайта в Unity3D для наложения на триггер
Здравствуйте, требуется спарсить таблицу с сайта (1 фотография) в unity, чтобы эта таблица стала...

Подсчет количества триггеров для заданной таблицы
Можно ли как-то подсчитать кол-во триггеров для заданной таблицы (SQL Man. Studio)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru