Skip to content

Instantly share code, notes, and snippets.

@duyet
Last active August 29, 2015 14:22
Show Gist options
  • Save duyet/6307095093b54510a982 to your computer and use it in GitHub Desktop.
Save duyet/6307095093b54510a982 to your computer and use it in GitHub Desktop.
-- Cập nhật trạng thái phiếu mượn
CREATE DEFINER = CURRENT_USER TRIGGER `LoanDetails_AFTER_INSERT`
AFTER INSERT ON `LoanDetails` FOR EACH ROW
BEGIN
DECLARE _return_num INT;
SELECT COUNT(is_return) INTO _return_num FROM LoanDetails WHERE loan_id = NEW.loan_id AND is_return = 1;
IF _return_num = (SELECT COUNT(*) FROM LoanDetails WHERE loan_id = NEW.loan_id) THEN
UPDATE Loans SET is_return = 1 WHERE loan_id = NEW.loan_id;
END IF;
END;
CREATE DEFINER = CURRENT_USER TRIGGER `LoanDetails_AFTER_UPDATE`
AFTER UPDATE ON `LoanDetails` FOR EACH ROW
BEGIN
DECLARE _return_num INT;
SELECT COUNT(is_return) INTO _return_num FROM LoanDetails WHERE loan_id = NEW.loan_id AND is_return = 1;
IF _return_num = (SELECT COUNT(*) FROM LoanDetails WHERE loan_id = NEW.loan_id) THEN
UPDATE Loans SET is_return = 1 WHERE loan_id = NEW.loan_id;
END IF;
END;
-- Không thể xóa ngôn ngữ mặc định
CREATE DEFINER = CURRENT_USER TRIGGER `ULib`.`Languages_BEFORE_DELETE`
BEFORE DELETE ON `Languages` FOR EACH ROW
BEGIN
IF `OLD`.`language_id` = 1 OR `OLD`.`language_id` = 2 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Can not remove default language';
END IF;
END;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment