Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггерочек / 10 сообщений из 10, страница 1 из 1
19.04.2018, 10:03
    #39632979
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
Приветствую всех.
Ситуация: нужно автозаполнение даты, времени, времени + 1.5 часа. Сделал триггер на insert. Но он выдаёт 1111. В cmd выполняет нормально.


CREATE TRIGGER date_time_insert
before insert
on orders
for each row
set
New.order_date = curdate(),
New.order_time = curtime(),
-- New.order_delivery = sec_to_time(sum(time_to_sec(curtime()) + time_to_sec('01:30:00'))),
New.order_status = 'accept';


Такая форма записи запроса (простите, 1.5 недели знакомства с mysql) появилась из-за появления точности в секундах (если делать time_to_sec('01:30:00') := '5400'),но как я понял из мануала, это прикол самой curtime.

P.S. И есть вопросик по одному запросу, который нужно выполнить, ибо не знаю, правильно ли понял принцип select'a.
Ситуация: вывести 10 самых быстрых заказов.

Select * from orders
where (
-- высчитывает все разности
-- строит табличку этим разностям от малого к большому (group by???)
-- режет до 10
)
...
Рейтинг: 0 / 0
19.04.2018, 13:55
    #39633160
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
Код: sql
1.
NEW.order_delivery = CURTIME() + INTERVAL '1:30' HOUR_MINUTE
...
Рейтинг: 0 / 0
19.04.2018, 13:57
    #39633161
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
TSPСитуация: вывести 10 самых быстрых заказов.
FAQ: Выборка нескольких последних записей в неких группах .
...
Рейтинг: 0 / 0
23.04.2018, 09:55
    #39634535
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
Спасибо, теперь вопрос в том, что при "22:30+" не происходит сброса в 00, при приращении времени данной строкой.
В таблице формат time.
...
Рейтинг: 0 / 0
23.04.2018, 10:03
    #39634541
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
TSPвопрос в том, что при "22:30+" не происходит сброса в 00, при приращении времени данной строкой.А должен?

Вообще правильнее имхо так:

Код: sql
1.
2.
3.
4.
SET New.order_date = DATE(@now := SYSDATE()),
    New.order_time = TIME(@now),
    New.order_delivery = TIME(@now + INTERVAL '1:30' HOUR_MINUTE),
-- и т.п.
...
Рейтинг: 0 / 0
23.04.2018, 10:40
    #39634557
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
Ну как бы да должен, как в реальной жизни? Доставка выходит на след сутки, если заказ был на эти.
...
Рейтинг: 0 / 0
23.04.2018, 10:41
    #39634558
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
авторА должен?

Вообще правильнее имхо так:
...
Рейтинг: 0 / 0
23.04.2018, 10:42
    #39634560
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
AkinaSET New.order_date = DATE(@now := SYSDATE()),
New.order_time = TIME(@now),
New.order_delivery = TIME(@now + INTERVAL '1:30' HOUR_MINUTE),
-- и т.п.


т.е. интерпретатору надо всё указывать явно?
...
Рейтинг: 0 / 0
23.04.2018, 10:50
    #39634564
TSP
TSP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
Ну и на "заедочку", ещё один триггер на after update:

проверяет поле, при выполнении условия читает ещё два поля ("название пиццы", "размер") и загружает в "цену" значение "цены" со второй таблицы с такими же "название пиццы", "размер".
...
Рейтинг: 0 / 0
23.04.2018, 11:22
    #39634582
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггерочек
TSPНу как бы да должен, как в реальной жизни? Доставка выходит на след сутки, если заказ был на эти.збс... и где ж ты дату этой доставки на следующие сутки хранишь-то? а нигде... и есть у тебя одна-единственная дата - дата заказа.
Кстати, а на зачем вообще потребовалось делить точку заказа на два поля? чтобы потом себе геморрою поиметь?
TSPт.е. интерпретатору надо всё указывать явно?Машина - дура. И делает лишь то, что ты ей скажешь. К слову - не то, что ты хочешь, а именно то, что скажешь, а это не всегда одно и то же, увы...
TSPещё один триггер на after updateЧто-то у тебя куда не плюнь - всё, что можно рассчитывать. когда потребуется, зачем-то рассчитывается предварительно. Плохо это.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггерочек / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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