home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Inprise / TRIAL / INTRBASE / DATA.Z / TRIGGERS.SQL < prev    next >
Text File  |  1998-03-15  |  2KB  |  78 lines

  1. /*
  2.     THIS FILE IS FOR USE WITH THE TUTORIAL IN "GETTING STARTED",
  3.     IT IS NOT MEANT TO BE USED WITHOUT REFERRING TO THE MANUAL.
  4.  
  5. *   You must change the parameters below to match your
  6. *   server name, database name , username, and password.
  7. *   This file creates triggers for the EMPLOYEE database.
  8. */
  9.  
  10. CONNECT "server:\dir\mydb.gdb"
  11. USER "USERNAME" PASSWORD "password";
  12.  
  13. /*
  14. *  Create triggers for employee database
  15. */
  16.  
  17. CREATE GENERATOR emp_no_gen;
  18. SET GENERATOR emp_no_gen to 145;
  19.  
  20. /* Create trigger to add unique customer number */
  21.  
  22. SET TERM !! ;
  23. CREATE TRIGGER set_emp_no FOR employee
  24. BEFORE INSERT AS
  25. BEGIN
  26.     new.emp_no = gen_id(emp_no_gen, 1);
  27. END !!
  28. SET TERM ; !!
  29.  
  30. /* Create Generator for SET_CUST_NO trigger */
  31.  
  32. CREATE GENERATOR cust_no_gen;
  33. SET GENERATOR cust_no_gen to 1015;
  34.  
  35. /* Create trigger to add unique customer number */
  36.  
  37. SET TERM !! ;
  38. CREATE TRIGGER set_cust_no FOR customer
  39. BEFORE INSERT AS
  40. BEGIN
  41.     new.cust_no = gen_id(cust_no_gen, 1);
  42. END !!
  43.  
  44. /* Create trigger to maintain SALARY_HISTORY table */
  45.  
  46. CREATE TRIGGER save_salary_change FOR employee
  47. AFTER UPDATE AS
  48. BEGIN
  49.     IF (old.salary <> new.salary) THEN
  50.         INSERT INTO salary_history
  51.             (emp_no, change_date, updater_id, old_salary, percent_change)
  52.         VALUES (
  53.             old.emp_no,
  54.             'now',
  55.             user,
  56.             old.salary,
  57.             (new.salary - old.salary) * 100 / old.salary);
  58. END !!
  59.  
  60.  
  61. CREATE TRIGGER post_new_order FOR sales
  62. AFTER INSERT AS
  63. BEGIN
  64.     POST_EVENT "new_order";
  65. END !!
  66.  
  67. /*
  68.  *    Get employee's projects.
  69.  *
  70.  *    Parameters:
  71.  *        employee number
  72.  *    Returns:
  73.  *        project id
  74.  */
  75.  
  76. SET TERM ; !!
  77.  
  78.