Рассчитать счет с помощью триггера BEFORE INSERT - PullRequest
0 голосов
/ 04 апреля 2019

Моя проблема заключается в следующем - я хотел бы иметь поле, которое подсчитывает, сколько каждый клиент должен за аренду автомобиля. Ниже я предоставляю некоторую структуру таблицы и то, что я уже сделал. Буду признателен, если кто-нибудь сможет пролить немного света.

DELIMITER //

CREATE TRIGGER check_repair
BEFORE INSERT ON bookings 
FOR EACH ROW BEGIN 

SET NEW.AMOUNT_DUE  = DATEDIFF(NEW.end_date, NEW.start_date) * 200;

END;
//
DELIMITER ;

Структура таблицы:

CREATE TABLE  vehicles (
   vehicle_id  int(10)  NOT NULL AUTO_INCREMENT,
   category ENUM('Sedan','Hatchback','SUV', 'Coupe', 'Crossover') NOT NULL,
   no_of_seats  int(11) NOT NULL,
   brand  varchar(20) NOT NULL,
   model  varchar(20) NOT NULL,
   product_year  int(5) NOT NULL,
   rate_per_day  int(11) NOT NULL,
   PRIMARY KEY (vehicle_id)

И

 CREATE TABLE  bookings  (
   booking_id  int(50)  NOT NULL AUTO_INCREMENT,
   booking_date  date NOT NULL,
   start_date  date NOT NULL,
   end_date  date NOT NULL,
   invoice_no int(10)  NOT NULL ,
   chauffeur_id int(10) NULL,
   vehicle_id int(10)  NOT NULL ,
   customer_id int(50) NOT NULL ,
   chauffeur_req ENUM('Yes','No') NOT NULL,
   special_instructions varchar(255) NOT NULL,
   PRIMARY KEY (booking_id),
   KEY invoice_nofk2 (invoice_no),
   KEY chauffeur_idfk1 (chauffeur_id),
   KEY customer_idfk2 (customer_id),
   KEY vehicle_idfk2 (vehicle_id),
   CONSTRAINT invoice_nofk1 FOREIGN KEY (invoice_no) REFERENCES invoice (invoice_no),
   CONSTRAINT chauffeur_idfk2 FOREIGN KEY (chauffeur_id) REFERENCES chauffeurs (chauffeur_id),
   CONSTRAINT customer_idfk3 FOREIGN KEY (customer_id) REFERENCES customers (customer_id), 
   CONSTRAINT vehicle_idfk3 FOREIGN KEY (vehicle_id) REFERENCES vehicles (vehicle_id)

У меня тоже есть

ALTER TABLE bookings
ADD COLUMN TheDuration varchar(10) NOT NULL;
ALTER TABLE bookings
ADD COLUMN AMOUNT_DUE varchar(16) NOT NULL; 

Чтобы завершить мой вопрос. Как сделать триггер, который вычисляет Amount_Due, используя rate_per_day и продолжительность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...