SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.05.2016 17:35:21

Эн
Участник
Зарегистрирован: 26.05.2016
Сообщений: 4

Создание триггера

Доброго времени суток!
Подскажите, пожалуйста, как будет выглядеть код триггера, автоматически вычисляющего стоимость билета (с учетом условия: СтоимостьБилета = РасстояниеМаршрута*2) и помещающий эту информацию собственно в поле СтоимостьБилета? (Поля "СтоимостьБилета" и "РасстояниеМаршрута" находятся в таблице "Билет" БД)
Заранее спасибо!

Неактивен

 

#2 26.05.2016 17:52:43

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Создание триггера

Приведите структуру используемых табличек (show create table `t`), набор тестовых данных и пример получившегося значения в результате отрабатывания триггера.

Без этого будет сложно подсказать что-то кроме "используйте триггер, срабатывающий после вставки.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 26.05.2016 18:02:14

Эн
Участник
Зарегистрирован: 26.05.2016
Сообщений: 4

Re: Создание триггера

Так триггера-то и нет как раз( не могу код написать

Структура таблицы, если я не ошибаюсь, вот:
CREATE TABLE bilet
(
bilet_no int NO NULL AUTO_INCREMENT,
rasstmarsh int NO NULL,
stoimost money NO NULL,
PRIMARY KEY (bilet_no)
)

Отредактированно Эн (26.05.2016 18:13:46)

Неактивен

 

#4 26.05.2016 18:04:29

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Создание триггера

Да не триггер прошу привести, а структуру табличек, тестовые данные и ожидаемый результат.
Ну и алгоритм работы триггера, мы ж не придумаем его сами.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 26.05.2016 18:10:00

Эн
Участник
Зарегистрирован: 26.05.2016
Сообщений: 4

Re: Создание триггера

ой, простите, пожалуйста, непонятливость мою)

Структура выше

Если задать расстояние 200 (км), то стоимость должна получиться 400 (руб), как я понимаю, данные из поля Расстояние должны перенестись в поле Стоимость и умножиться там на 2, Вы об этом?

Неактивен

 

#6 26.05.2016 18:17:51

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Создание триггера

DROP TABLE IF EXISTS `bilet`;
CREATE TABLE `bilet` (
`bilet_no` int NOT NULL,
`rasstmarsh` int NOT NULL,
`stoimost` int NOT NULL
);
DROP TRIGGER IF EXISTS `bilet_insert_trigger`;
DELIMITER //
CREATE TRIGGER `bilet_insert_trigger` BEFORE INSERT ON `bilet`
FOR EACH ROW BEGIN
  SET NEW.`stoimost` = NEW.rasstmarsh * 2;
END;//
DELIMITER;
INSERT INTO `bilet` VALUES(1,200,0);

 


Для проверки выполните запрос

SELECT * FROM bilet;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 26.05.2016 18:23:39

Эн
Участник
Зарегистрирован: 26.05.2016
Сообщений: 4

Re: Создание триггера

Ого, вроде ничего сложного! Спасибо огромное!

Неактивен

 

#8 26.05.2016 18:25:24

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Создание триггера

Ну, если это то, что Вам требовалось, до правда несложно.
You're welcome smile


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson