Advertisement
Guest User

Untitled

a guest
Dec 9th, 2013
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.34 KB | None | 0 0
  1. CREATE TABLE dba.InPlaceTest
  2. (
  3.     ID INTEGER NOT NULL PRIMARY KEY DEFAULT autoincrement,
  4.     Val DOUBLE,
  5.     GroupID INTEGER NOT NULL,
  6.     TYPE VARCHAR(5) NOT NULL,
  7.     seq INTEGER NOT NULL,
  8.     UNIQUE(GroupID, TYPE, seq)
  9. );
  10. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(15673, 'STD', 1, 20);
  11. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(15673, 'STD', 2, 40);
  12. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(15673, 'STD', 3, 60);
  13. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(18635, 'STD', 1, 10);
  14. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(18635, 'STD', 2, 30);
  15. INSERT INTO dba.InPlaceTest(GroupID, TYPE, seq, Val) VALUES(18635, 'STD', 3, 50);
  16.  
  17. CREATE VIEW dba.InPlaceTestView AS
  18. SELECT GroupId, seq, GroupId || '-' || seq AS row_id,
  19.     SUM(IF seq=1 THEN Val ELSE 0 endif) AS Seq1,
  20.     SUM(IF seq=2 THEN Val ELSE 0 endif) AS Seq2,
  21.     SUM(IF seq=3 THEN Val ELSE 0 endif) AS Seq3
  22. FROM dba.InPlaceTest
  23. GROUP BY GroupId, seq;
  24.  
  25. CREATE OR REPLACE TRIGGER InPlaceTestView_Update instead OF UPDATE ON dba.InPlaceTestView
  26.     REFERENCING OLD AS old_name NEW AS new_name FOR each ROW
  27. BEGIN
  28.     raiserror 99999 'row: GroupID=' || new_name.GroupID || ', seq=' || new_name.seq || ', row_id=' || new_name.row_id
  29.         || ', seq1=' || new_name.seq1 || ', seq2=' || new_name.seq2 || ', seq3=' || new_name.seq3;
  30. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement