PostgreSQL 创建一个递减特定值的触发器
PostgreSQL creating a trigger that decrements a certain value
以下是我在 PostgreSQL 中创建的一些 table:
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 table 中插入一行时,它都会将 Card table 中一行的 monthly_deduction 值减 2。我试图在网上找到有关触发器的解决方案,但其中 none 解释了如何更改特定列的值。请尽快回复我。感谢您的关注。
您所要做的就是运行触发器中的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;
以下是我在 PostgreSQL 中创建的一些 table:
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 table 中插入一行时,它都会将 Card table 中一行的 monthly_deduction 值减 2。我试图在网上找到有关触发器的解决方案,但其中 none 解释了如何更改特定列的值。请尽快回复我。感谢您的关注。
您所要做的就是运行触发器中的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;