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

Создать триггер для занесения стоимости каждого проданного билета во временную таблицу

14.06.2014, 23:08. Показов 828. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если кто-нибyдь может, то помогите пожалyйста. Все задания сделал, кроме этого, просто с триггерами как то не заладилось

Создать триггер для занесения стоимости каждого проданного билета во временную таблицу «выручка за текущий день».

Вот таблицы
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
USE Avtovokzal
CREATE TABLE VODITEL(
Voditel_no SMALLINT PRIMARY KEY,
Passport_no NCHAR(9) NOT NULL,
FName VARCHAR(20) NOT NULL,
LName VARCHAR(20) NOT NULL,
Surname VARCHAR(20) NOT NULL,
City VARCHAR(20) NOT NULL,
Street VARCHAR(20) NOT NULL,
House NCHAR(6) NOT NULL,
Flat SMALLINT NULL
) 
GO
 
USE Avtovokzal
CREATE TABLE AVTOBUS(
Avtobus_no NCHAR(9) PRIMARY KEY,
Marka VARCHAR(20) NOT NULL,
Avtobus_type VARCHAR(20) NOT NULL,
Kol_Mest SMALLINT NOT NULL,
Kol_Vsego SMALLINT NOT NULL//([Kol_Vsego]=([Kol_Mest]+(10)))
) 
GO
 
 
USE Avtovokzal
CREATE TABLE REIS(
Reis_no SMALLINT PRIMARY KEY,
Punkt_Otpr VARCHAR(20) NOT NULL,
Punkt_Nazn VARCHAR(20) NOT NULL,
Vremya_Otpr datetime NOT NULL,
Vremya_VPuty SMALLINT NULL
) 
GO
 
USE Avtovokzal
CREATE TABLE PEREVOZKA(
Bilet_no NCHAR(9) PRIMARY KEY,
Bilet_Price INT NOT NULL,
Date_Otpr datetime NOT NULL,
Voditel_no SMALLINT NOT NULL,
Avtobus_no NCHAR(9) NOT NULL,
Reis_no SMALLINT NOT NULL,
) 
GO
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2014, 23:08
Ответы с готовыми решениями:

Как создать временную таблицу внутри хранимой процедуры?
Вот что-то не нашел нигде об этом. Надо написать процедуру сложного расчета по БД. Результатом...

ASP, ADO, Access - как создать временную таблицу в памяти?
День добрый! Сильно не бейте, если вопрос совсем банальный, но поиски по гуглу в течение дня...

При загрузке страницы нужно создать временную таблицу с уникальным именем
такая ситуация : при загрузке страницы нужно создать временную таблицу с уникальным именем, потом...

Создание кнопки для занесения данных в таблицу
В общем такой вопрос: Как создать кнопку в форме для записи данных в таблицу к которой эта форма не...

3
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
15.06.2014, 17:13 2
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
CREATE TABLE DailyTakings (
Date_Otpr datetime NOT NULL,
Bilet_Sum INT NOT NULL);
 
CREATE TRIGGER OnCheckSum AFTER INSERT OR DELETE OR UPDATE ON Perevozka
FOR EACH ROW EXECUTE PROCEDURE CheckSum();
 
CREATE FUNCTION CheckSum() RETURN TRIGGER AS $body$
BEGIN
  IF TG.OP == 'INSERT' THEN
    -- Запомнить NEW.Data_Otpr
    -- Запонить NEW.Bilet_Price
  END IF;
  IF TG.OP == 'UPDATE' THEN
    -- Запонмить NEW.Date_Otpr
    -- Запомнить разницу между NEW.Bilet_Price и OLD.Bilet_Price
  END IF;
  IF TG.OP == 'DELETE' THEN
    -- Запомнить OLD.Date_Otpr
    -- Запомнить со знаком минус OLD.Bilet_Price
  END IF;
  -- Определить, есть ли запись в DailyTakings на запомненную дату
  -- Если есть, то UPDATE запомненного числа
  -- Если нет, то INSERT запомненного числа
  RETURN NULL;
END; $body$
LANGUAGE pgplsql;
Вот примерно за основу, дальше спрашивайте, если не получится
1
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 19
15.06.2014, 21:00  [ТС] 3
Спасибо. Только я не совсем понимаю, при чем здесь фyнкция?
Ведь надо один триггер сделать и все.
И его как раз таки сделать и не полyчается(
0
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
16.06.2014, 14:23 4
Суть триггера - запустить заданную функцию при возникновении определенного события (удаление, изменение, добавление данных из/в таблицу).
Соответственно, нужна функция (CREATE FUNCTION) и нужно определение самого тригера с условием срабатывания (CREATE TRIGGER).
0
16.06.2014, 14:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2014, 14:23
Помогаю со студенческими работами здесь

Нажатие на кнопку для занесения значения флажка в таблицу
Есть форма "Данные", значения в которой берутся из таблицы "Данные". Форма "Данные" состоит из двух...

Фирма предоставляет скидку оптовым покупателям. Сумма скидки составляет 10% от стоимости проданного товара
Фирма предоставляет скидку оптовым покупателям. Сумма скидки составляет 10% от стоимости проданного...

Триггер для подсчета общей стоимости заказа
Нужно подсчитать общую стоимость заказа. Формула подсчета выглядит так: 100 * Количество дисков *...

Триггер для подсчёта стоимости всего заказа
подскажите пожалуйста нужно написать триггер для подсчёта стоимости всего заказа, которая состоит...


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

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