Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него / 7 сообщений из 7, страница 1 из 1
05.12.2017, 21:24
    #39564727
wlad1164
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
в БД имеется 2 таблицы:
В первой хранятся данные путевых листов
Во второй хранится список автомобилей

Задача, составить тригеры которые будут при добавлении/изменении строки в Таблица1, Изменять значения в Таблица2 по условию

Структура Таблица1
Структура Таблица2
*Столбцов там намного больше, но они думаю не интересны

Получается при добавлении/изменении в Т1, в Т2 для каждого Авто нужно получить актуальные данные:
OdometrAvto = значение OdometrPoslePL из строки с максимальным NomerPL для данного автомобиля AvtoPL
ToplivoAvto = значение ToplivoPoslePL из строки с максимальным NomerPL для данного автомобиля AvtoPL

Получается нужно создать тригер AFTER который сработает после события ISERT (и такой же дляя UPDATE) но как обозначить описанные условия понять не могу...
В очередной раз прошу помощи у Вас.
...
Рейтинг: 0 / 0
05.12.2017, 21:38
    #39564728
wlad1164
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
Вручную это команда
Код: sql
1.
2.
UPDATE `Avtopark` SET `OdometrAvto`=(
    SELECT max(`OdometrPoslePL`) FROM `PutListy` WHERE `AvtoPL`='Е059ХО 36RUS') WHERE `GRZ`='Е059ХО 36RUS'


Но каждый раз нужно менять значение GRZ
...
Рейтинг: 0 / 0
05.12.2017, 23:06
    #39564746
wlad1164
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
К сожалению не нашел как редактировать предыдущие сообщения... сейчас дошел до уровня
Код: sql
1.
2.
3.
4.
5.
6.
SET @i = 1;
	SET @GRZ = (SELECT `GRZ` FROM `Avtopark` WHERE `id` = @i);
	UPDATE `Avtopark` SET `ToplivoAvto`=(
    	SELECT `ToplivoPoslePL` FROM `PutListy` WHERE `NomerPL`=(
        	SELECT max(`NomerPL`) FROM `PutListy` WHERE `AvtoPL`=@GRZ)) WHERE `GRZ`=@GRZ;
SET @i=@i+1


Запихнуть бы это дело в цикл и думаю для новичка подойдет...
...
Рейтинг: 0 / 0
06.12.2017, 11:52
    #39564936
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
Для решения задачи триггеры не нужны, требуемые данные получают несложным запросом. Предварительно прочитав FAQ: Выборка первой/последней записи в группах .
...
Рейтинг: 0 / 0
06.12.2017, 11:53
    #39564937
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
И, соответственно, вторую таблицу просто выкинуть за ненадобностью.
...
Рейтинг: 0 / 0
06.12.2017, 19:26
    #39565385
wlad1164
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
Akina,
спасибо за познавательный, максимально развернутый и верный ответ

Но в моем посте не было вопросов как получить эти данные, требуется именно обновление их во второй таблице, которая тоже нужна и должна быть (для чего-другой вопрос) думаю для Вас не секрет что многое можно было бы сделать иначе, но есть что-то(или кто-то) кто хочет чтобы было "Именно так" и изменить это что-то нет возможности, отсюда и такие извращения
...
Рейтинг: 0 / 0
06.12.2017, 20:44
    #39565417
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него
В таком случае просто вспомните, что триггер работает с ОДНОЙ записью, а не с массивом. Так что обновление второй таблицы следует делать только в случае, когда для контрольного поля NEW.field >= MAX(field) .
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите, как настроить тригер и возможно ли изложенное сделать с помощью него / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]