Как создать триггер обновления после вставки новой записи? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть таблица в mysql. Имя таблицы sales, которая содержит следующие столбцы saleID int NOT NULL Primary Key, productID int NOT NULL, unitPrice decimal(6,2) NOT NULL, quantity int NOT NULL, total decimal(6,2) Теперь я хочу update trigger после вставки новой записи, которая найдет общую цену для этой продажи.

Я пытаюсь написать триггер обновления

DELIMITER $$
CREATE TRIGGER before_sales_insert  
before INSERT ON sales
FOR EACH ROW 
 BEGIN

END#
$$
DELIMITER 

Я новичок, пожалуйста, помогите. Спасибо

1 Ответ

0 голосов
/ 07 апреля 2019

Дано

select productid ,standardcost from awproduct where productid = 707;
+-----------+--------------+
| productid | standardcost |
+-----------+--------------+
|       707 |         3.00 |
+-----------+--------------+

и при условии, что вы не приобрели цену за единицу до запуска триггера

drop table if exists t;
drop trigger if exists t;
create table t
(id int, productid int, unitprice int, quantity int, totalprice int);

delimiter $$
create trigger  t
before insert on  t
for each row begin
    set new.unitprice = (select standardcost from awproduct where productid = new.productid);
    set new.totalprice = new.quantity * new.unitprice;

end $$
delimiter ;

insert into t (id,productid,quantity) values
(1,707,10);

select * from t;

+------+-----------+-----------+----------+------------+
| id   | productid | unitprice | quantity | totalprice |
+------+-----------+-----------+----------+------------+
|    1 |       707 |         3 |       10 |         30 |
+------+-----------+-----------+----------+------------+
1 row in set (0.00 sec)

Я не могу улучшить документацию в руководстве, поэтому не буду пытаться. Кстати, если вам нужно решение, более близкое к вашим требованиям, лучше включить в вопрос текстовые данные.

...