Я создаю базу данных, в которой будут храниться все виды оборудования, и одно из объектов хранит информацию о гарантии для этого оборудования. Одним из атрибутов, которые я хочу, является производный атрибут Is_Valid, который будет в основном «недействительным» или «действительным» в зависимости от того, прошла ли дата окончания условий гарантии.Как вычислить производные атрибуты для дат в запросе CREATE TABLE. - MySQL
я был в состоянии сделать это в SQL с этим запросом:
CREATE TABLE Warranty(
Warranty_ID varchar(5),
Begin_Date date,
End_Date date,
Terms varchar(15),
Is_Valid as (IIF((GetDate() > Begin_Date) AND (GetDate() < End_date), 'valid','not valid')),
Primary Key (Warranty_ID));
Однако, я пытался сделать это в MySQL, но я не могу заставить его работать. Единственный способ, которым я получил его, - использовать запрос UPDATE Warranty
, используя case
, но я предпочел бы, чтобы база данных делала это автоматически. Если я что-то понимаю неправильно, простите меня, потому что я новичок в структуре базы данных и ее реализации. Благодарю.
AFAIK, вы не можете сделать это в MySQL. То, что вы пытаетесь сделать, определяется либо триггером «ON BEFURE INSERT» и 'ON BEFORE UPDATE», либо вы можете определить 'VIEW' с таким запросом' SELECT'. – Wrikken