Emulating a CREATE ASSERTION command in Postgres

			DROP FUNCTION checkFrequentFPS() CASCADE;

			CREATE FUNCTION checkFrequentFPS() RETURNS TRIGGER AS '
			BEGIN
			IF EXISTS (SELECT p.day
				FROM Played p, Games g
				WHERE p.gid = g.gid AND g.type=''FPS''
				GROUP BY p.day
				HAVING COUNT(*)>2
				) THEN
				RAISE EXCEPTION ''No FPS For you!'';
			END IF;
			RETURN NULL;
			END
			'
			LANGUAGE plpgsql;

			CREATE TRIGGER checkFrequentFPSTrigger
			AFTER INSERT ON Played
			FOR EACH ROW
			EXECUTE PROCEDURE checkFrequentFPS();
		

Implementing a trigger in Postgres

			DROP FUNCTION upgradeRating() CASCADE;

			CREATE FUNCTION upgradeRating() RETURNS TRIGGER AS '
			DECLARE
				count_user INTEGER;
			BEGIN
				SELECT COUNT(*)%2 INTO count_user FROM Played WHERE cid = NEW.cid;
			  IF count_user = 0 THEN
				UPDATE Customers SET rating=rating +1 WHERE cid = NEW.cid;
			  END IF;
			  RETURN NULL;
			END;
			' LANGUAGE plpgsql;

			CREATE TRIGGER upgradeRatingTrigger
			AFTER INSERT ON Played
			FOR EACH ROW
			EXECUTE PROCEDURE upgradeRating();