MySQL-SQL存储过程/触发器详解
-- 创建一个存储过程,用于计算某个表的记录数
DELIMITER //
CREATE PROCEDURE CountTableRows(IN tableName VARCHAR(255))
BEGIN
SET @stmt = CONCAT('SELECT COUNT(*) FROM ', tableName);
PREPARE stmt FROM @stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
-- 调用存储过程
CALL CountTableRows('your_table_name');
-- 创建一个触发器,用于在插入记录到某表时记录操作
CREATE TRIGGER after_insert_trigger
AFTER INSERT ON your_table_name
FOR EACH ROW
BEGIN
INSERT INTO audit_log (operation, table_name, row_id, user_id, timestamp)
VALUES ('INSERT', 'your_table_name', NEW.id, CURRENT_USER, NOW());
END;
这个例子展示了如何创建一个存储过程来计算表的行数,并使用了预处理语句来处理动态SQL。同时,它还演示了如何创建一个简单的触发器,在向特定表插入记录后记录这个操作。这些技术可以帮助开发者更好地管理和监控数据库活动。
评论已关闭