Professional Documents
Culture Documents
1)
CREATE ASSERION MIN_SALARY
CHECK(
NOT EXISTS(
SELECT * FROM EMP
WHERE salary<1000
));
2)
CREATE TRIGGER MANAGER_MUST
AFTER INSERT ON Dept
REFERRING NEWROW AS NEWTUPLE
FOR EACH ROW
WHEN(NEWTUPLE.managerid NOT IN
(SELECT eid FROM Emp))
INSERT INTO Emp(eid)
VALUES(NEWTUPLE.managerid);
3)
CREATE ASSERTION PER_TIME_CON
CHECK(
NOT EXISTS(
SELECT * FROM Emp
Group By eid
Having SUM(pct_time)>100
));
4)
CREATE ASSERTION MangerMakesMore
CHECK (NOT EXISTS
(SELECT *
FROM Emp AS e, Works AS w, Dept AS d
WHERE e.eid = w.eid AND
w.did = d.did AND
e.salary > (SELECT salary
FROM Emp AS manager
WHERE d.managerid = manager.eid)));
5)
CREATE TRIGGER ManSalEqEmp
AFTER UPDATE OF salary ON Emp
REFERENCING
OLD ROW AS OldTuple,
NEW ROW AS NewTuple
FOR EACH ROW
WHEN (NewTuple.salary > OldTuple.salary)
UPDATE Emp
SET salary = NewTuple.salary
WHERE eid IN
(SELECT man.eid
FROM Emp AS man, Works AS w, Dept AS d
WHERE NewTuple.eid = w.eid
AND w.did = d.did
AND d.managerid = man.eid
AND man.salary < NewTuple.salary);
6)
CREATE TRIGGER ManSalEqEmpAndRaiseBudget