SQL codes1
SQL codes1
DELIMITER //
CREATE TRIGGER changing_no
AFTER INSERT ON purchase
FOR EACH ROW
BEGIN
DECLARE arts_id VARCHAR(6);
DECLARE P_AMOUNT INT;
SELECT art_id INTO arts_id FROM purchase WHERE order_id = NEW.order_id;
SELECT amount INTO P_AMOUNT FROM art_order WHERE order_id = NEW.order_id;
IF P_AMOUNT >0 THEN
UPDATE art SET availability ='No' WHERE art_id = arts_id;
END IF;
END //
-----------------------------------------------------------------------------------
-----
Q2)
DELIMITER //
CREATE TRIGGER giving_rate
AFTER INSERT ON exhibited
FOR EACH ROW
BEGIN
DECLARE t_likes INT;
DECLARE t_arts INT;
DECLARE artistID varchar(4);
DECLARE rating INT;
-----------------------------------------------------------------------------------
----------
Q3)
DELIMITER //
CREATE PROCEDURE RankArtistsBasedOnLikesWithCursors()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE artistId, contactNo VARCHAR(10);
DECLARE fName, lName, loc VARCHAR(50);
DECLARE uName, pass VARCHAR(20);
DECLARE rating INT;
DECLARE gen ENUM('M', 'F', 'O');
DECLARE totalLikes INT DEFAULT 0;
OPEN cur;
label: LOOP
FETCH cur INTO artistId, fName, lName, contactNo, rating, uName, pass, loc,
gen;
SELECT SUM(likes) INTO totalLikes FROM art WHERE artist_id = artistId;
INSERT INTO TempRanking VALUES (artistId, totalLikes);
IF done = 1 THEN
LEAVE label;
END IF;
END LOOP;
CLOSE cur;
call RankArtistsBasedOnLikesWithCursors();
-----------------------------------------------------------------------------------
--------
Q4)
[Load the new database and its tables given in the question given]
[politics database]
Q5)
Q6)
Q7)
Q8)
CREATE USER 'A012'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON november.art TO 'A012'@'localhost';
Q9)