You are on page 1of 2

1.

CREATE TABLE Note (


OrderNumber INT,
ProductCode VARCHAR(255),
Note VARCHAR(255),
)

DELIMITER$$
CREATE TRIGGER after_note_update
ON orderdetails
AFTER UPDATE
FOR EACH ROW
BEGIN
IF (SELECT quantityInStock FROM products WHERE p.productCode =
New.productCode) >New.quantityOrdered THEN
INSERT INTO Note;
SET Note = 'Thiếu hàng hóa cung ứng',
OrderNumber = NEW.orderNumber,
ProductCode = NEW.productCode;
ENDIF;
END$$
DELIMITER;

2.
DELIMITER$$
CREATE TRIGGER before_orderdetails_insert
ON orderdetails
FOR INSERT
AS
BEGIN
IF (SELECT quantityOrdered FROM inserted) > (SELECT quantityInStock FROM
product WHERE productCode = (SELECT ProductCode FROM inserted))
BEGIN
PRINT 'không đủ lượng hàng yêu cầu';
ROLLBACK TRANSACTION;
END
ENDIF;
END$$
DELIMITER;

3.
DELIMITER$$
CREATE TRIGGER after_order_cancel
AFTER DELETE ON orderdetails
FOR EACH ROW
BEGIN
IF NEW.status = 'Cancelled' THEN
UPDATE products p INNER JOIN orderdetails od ON p.productCode =
od.productCode
SET quantityInStock = quantityInStock + OLD.quantityOrdered
WHERE p.orderNumber = OLD.orderNumber;
END IF;
END$$
DELIMITER;

DELIMITER$$
CREATE TRIGGER EX2
ON DONVI
BEFORE UPDATE
BEGIN
IF (SELECT COUNT(*) FROM DV WHERE DV.MSNQL = NEW.masonv) > 0 THEN
PRINT
ROLLBACK TRANSACTION;
END

3.
DELIMITER$$
CREATE TRIGGER EX3 ON DUAN
BEFORE UPDATE
BEGIN
IF (SELECT COUNT(*) FROM DA WHERE DA.MSDV = NEW.masodv) > 2 THEN
PRINT
ROLLBACK TRANSACTION;
END

4
DELIMITER$$
CREATE TRIGGER EX4
ON NV_DA
AFTER UPDATE
BEGIN
IF (SELECT SUM(Sogio) + New.Sogio FROM NV_DA GROUP BY MSNV) > 500 THEN
BEGIN
UPDATE Nhanvien
SET
END

You might also like