-- 开始事务
START TRANSACTION;
-- 插入新学生
INSERT INTO students (name, email, age, department_id)
VALUES ('张三', 'zhangsan@example.com', 20, 1);
-- 获取新插入的学生ID
SET @new_student_id = LAST_INSERT_ID();
-- 为学生注册课程
INSERT INTO student_courses (student_id, course_id, grade, enrollment_date)
VALUES (@new_student_id, 101, NULL, CURDATE());
-- 提交事务
COMMIT;
-- 错误处理示例
START TRANSACTION;
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Transaction failed' AS message;
END;
INSERT INTO students (name, email, age, department_id)
VALUES ('李四', 'lisi@example.com', 22, 1);
INSERT INTO student_courses (student_id, course_id, grade, enrollment_date)
VALUES (LAST_INSERT_ID(), 101, NULL, CURDATE());
COMMIT;
SELECT 'Transaction successful' AS message;
END;