Поскольку я вижу, что вы не получили свой ответ, и я собираюсь сделать почти тот же тип расчета для моего приложения, которое я строю, я дал ему go на вашем примере.
Перво-наперво: вы не можете запустить триггер, чтобы выполнить действие на том же столе, с которого был запущен триггер. Значение: когда вы вставляете новый продукт, вы не можете сразу запустить триггер для обновления этого же продукта.
Вы должны перегруппировать свои таблицы, и я предлагаю добавить новый. В новом у вас будет ИНОСТРАННЫЙ КЛЮЧ , который будет указывать на идентификатор вашего продукта, чтобы вы могли позже ПРИСОЕДИНИТЬСЯ к этим двум таблицам и получить результат. Здесь вы будете хранить желаемый диапазон цен + идентификатор продукта.
Я также внес несколько необходимых изменений в вашу таблицу, я не собираюсь называть их все в порядке, я собираюсь объяснить все, что происходит в триггере, , поскольку это было немного запутанным в то время даже для меня . Не стесняйтесь изучать код и задать вопрос.
Я сделал рабочий пример для вас, как я думаю, что это должно быть сделано, и это результат:
Схема (MySQL v5.7)
**Query #1**
SELECT * FROM `range_and_prices`;
| id | ranges_from | ranges_to | prices |
| --- | ----------- | --------- | ------ |
| 1 | 1 | 20 | 10 |
| 2 | 21 | 40 | 20 |
| 3 | 41 | 60 | 40 |
---
**Query #2**
SELECT * FROM `product`;
| product_id | product | total_quantity |
| ---------- | ------- | -------------- |
| 1 | Coffee | 5 |
| 2 | sugar | 25 |
---
**Query #3**
SELECT * FROM `product` INNER JOIN `range` ON product.product_id=range.product_id;
| product_id | product | total_quantity | product_id | range_prices |
| ---------- | ------- | -------------- | ---------- | ------------ |
| 1 | Coffee | 5 | 1 | 10 |
| 2 | sugar | 25 | 2 | 20 |
---
Здесь вы можете просмотреть полный рабочий код триггера и проверить его, изменив последнюю строку вставки: Просмотр на скрипте БД
Надеюсь, это станет для вас какой-то начальной помощью. Приветствия.