CREATE TABLE `student`
(
`student_id` int(5) NOT NULL AUTO_INCREMENT,
`student_first_name` varchar(30) not null,
`student_lase_name` varchar(30) not null,
`student_roll_no` int(5) not null,
`student_class` int(2) not null,
PRIMARY KEY (`student_id`)
);
CREATE TABLE `result_sheet_1`
(
`student_id` int(5),
`student_first_name` varchar(30),
`student_lase_name` varchar(30),
`student_roll_no` int(5),
`student_class` int(2),
`mid_1_english` int(2),
`mid_2_english` int(2),
`mid_1_mathematics` int(2),
`mid_2_mathematics` int(2),
`semester_final_english` int(2),
`semester_final_mathematics` int(2)
);
delimiter $$
create trigger result_sheet_1_insert_trigger
after insert on student
for each row
begin
insert into result_sheet_1(student_id, student_first_name, student_lase_name, student_roll_no, student_class, mid_1_english, mid_2_english, mid_1_mathematics, mid_2_mathematics, semester_final_english, semester_final_mathematics)
values (new.student_id, new.student_first_name, new.student_lase_name, new.student_roll_no, new.student_class, 0, 0, 0, 0, 0, 0);
end$$
delimiter ;
每当特定行从学生表中删除时,我想通过用户定义的函数从 result_sheet_1 中删除该行。提前致谢!
最佳答案
您可以简单地使用外键通过使用级联来执行任务。
ALTER TABLE
result_sheet_1
ADD FOREIGN KEY (student_id
) REFERENCEStest
.student
(student_id
) ON DELETE CASCADE ON UPDATE CASCADE;
关于mysql - 如何在 MySQL 中编写用户定义的函数,以便当我从一个表中删除一行时,另一个表中的特定行也会被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713694/