Code:
DROP function IF EXISTS update_rarity;
CREATE OR REPLACE FUNCTION update_rarity() RETURNS trigger AS $$
BEGIN
if (((select count(raresa) FROM Carta WHERE c.raresa LIKE '%Legendary%')*100 /(select count(raresa) FROM Carta)) <> 17 ) then
INSERT INTO Warnings(affected_table,error_message,date,user)
VALUES ('Carta' ,'Proporcions de raresa no respectades: Legendary la proporció actual és '|| (select count(raresa) FROM Carta WHERE raresa LIKE '%Legendary%') || 'quan hauria de ser 3', CURRENT_DATE, CURRENT_USER);
end if;
return null;
END;
$$ LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS cards ON Carta;
CREATE OR REPLACE TRIGGER cards
AFTER INSERT OR UPDATE ON Carta
FOR EACH ROW
EXECUTE FUNCTION update_rarity();
UPDATE carta SET nom ='Ral Roachs Rascals' ,raresa='Proletari' WHERE nom = 'Rascals';
ERROR: syntax error in or near of «;»
LINE 1: DROP function IF EXISTS update_rarity;
^
SQL state: 42601
Character: 38