Advertisement
RazorBlade57

mysql

Dec 4th, 2018
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1.  
  2.  
  3. 1)
  4.  
  5. DROP PROCEDURE IF EXISTS insert_category;
  6.  
  7. DELIMITER //
  8.  
  9. CREATE PROCEDURE insert_category
  10. (
  11. var_category_id INT,
  12. var_category_name varchar(50)
  13. )
  14. BEGIN
  15. DECLARE sql_error TINYINT DEFAULT FALSE;
  16. DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
  17. SET sql_error = TRUE;
  18. START TRANSACTION;
  19. UPDATE categories
  20. SET
  21. category_id = var_category_id
  22. WHERE
  23. category_name = var_category_name;
  24. IF sql_error = FALSE THEN
  25. COMMIT;
  26. ELSE
  27. ROLLBACK;
  28. END IF;
  29. END//
  30.  
  31.  
  32. DELIMITER ;
  33.  
  34. -- Test fail:
  35. call insert_category (3,'Basses');
  36.  
  37. -- Test pass:
  38. call insert_category (4,'Piano');
  39.  
  40. ====================================================================
  41.  
  42. 2)
  43.  
  44.  
  45.  
  46. DROP FUNCTION IF EXISTS discount_price;
  47.  
  48. DELIMITER //
  49. CREATE FUNCTION discount_price
  50. (
  51. item_id_param INT
  52. )
  53. RETURNS DECIMAL(9,2)
  54. BEGIN
  55. DECLARE discount_price_var DECIMAL(9,2);
  56. SELECT item_price-discount_amount
  57. INTO discount_price_var
  58. FROM order_items
  59. WHERE item_id= item_id_param;
  60. RETURN discount_price_var;
  61. END//
  62.  
  63. DELIMITER ;
  64.  
  65. -- Test pass:
  66. SELECT
  67. DISCOUNT_PRICE(item_id) AS discount_price
  68. FROM
  69. order_items
  70. WHERE
  71. item_id = 3;
  72.  
  73. ========================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement