Существует таблица, в которую добавляются дата начала и дата конца, а также длительность. Необходимо сделать, чтобы при добавлении длительность вычислялась сама путём вычитания даты конца от даты начала. функцию DATEDIFF() использовать при добавлении данных, насколько я понял, нельзя (как минимум, у меня это не сработало). Самое простое — создать триггер, но это решение кажется слишком топорным. Нет ли более изящного решения? Нерабочий код моей попытки создания таблицы (обратите внимание на duration):
CREATE TABLE tours(
tour_id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
departure VARCHAR(30) NOT NULL,
destination VARCHAR(30) NOT NULL,
departure_date DATE NOT NULL,
return_date DATE NOT NULL,
transport_type CHAR(1) NOT NULL,
duration DATE DATEDIFF(departure_date, return_date) NOT NULL,
price INT(7) NOT NULL,
tours_amount TINYINT NOT NULL);
Начиная с MySQL 5.7.6 можно использовать "Generated Columns".
Пример:
CREATE TABLE triangle (
sidea DOUBLE,
sideb DOUBLE,
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники