
-- SI-T 26/06/2023 - ESE3

-- 3.2)

create table RISTORANTI (
     Nome varchar(30) not null primary key,
     Comune varchar(30) not null,
     VotoMax int not null default 0  check(VotoMax >= 0),
	CodCliente char(5) default null 		);

create table PRANZI (
     Nome varchar(30) not null references RISTORANTI,
     CodCliente char(5) not null,
     Data date not null,
     Voto int not null check(Voto >= 0),
     primary key (CodCliente,Nome,Data)	);

-- 3.3)

-- INSERT per testare il funzionamento

INSERT INTO RISTORANTI VALUES
('MangiaBen','Bologna',DEFAULT,DEFAULT);

CREATE OR REPLACE TRIGGER AGGIORNA_VOTO_MAX_E_CLIENTE
AFTER INSERT ON PRANZI
REFERENCING NEW AS N
FOR EACH ROW
WHEN (N.Voto > (SELECT VotoMax FROM RISTORANTI WHERE Nome = N.Nome))
UPDATE 	RISTORANTI
SET		VotoMax = N.Voto,
		CodCliente = N.CodCliente
WHERE		Nome = N.Nome 				;

INSERT INTO PRANZI VALUES ('MangiaBen','C1234',CURRENT DATE,6); -- aggiorna VotoMax e CodCliente

INSERT INTO PRANZI VALUES ('MangiaBen','C2345',CURRENT DATE,6); -- non aggiorna



