PostgreSQL создает триггер, который уменьшает определенное значение - PullRequest
0 голосов
/ 24 мая 2018

Вот несколько таблиц в PostgreSQL, которые я создал:

CREATE TABLE Card(card_id INT PRIMARY KEY, monthly_deduction DOUBLE);
CREATE TABLE Customer(costumer_ID INT PRIMARY KEY, card_number INT, amount DOUBLE, FOREIGN KEY (card_number) references Card(card_ID));
CREATE TABLE Ride(ride_ID INT PRIMARY KEY, rider_ID INT, FOREIGN KEY (rider_ID) REFERENCES Customer(costumer_ID))

Я хочу создать триггер, который при каждом добавлении строки в таблицу Ride уменьшает значение month_deduction строкив карточном столе на 2. Я пытался найти решение онлайн о триггерах, но ни один из них не объясняет, как изменить значение определенного столбца.Пожалуйста, ответьте мне как можно скорее.Спасибо за внимание.

1 Ответ

0 голосов
/ 24 мая 2018

Все, что вам нужно сделать, это запустить оператор UPDATE в триггере:

UPDATE card
   SET monthly_deduction = monthly_deduction - 2
FROM customer
WHERE customer.card_number = card.card_id
  AND customer.customer_id = NEW.rider_id;
...