mysql - 如何在 MySQL 中编写用户定义的函数,以便当我从一个表中删除一行时,另一个表中的特定行也会被删除?

标签 mysql

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) REFERENCES test.student(student_id) ON DELETE CASCADE ON UPDATE CASCADE;

关于mysql - 如何在 MySQL 中编写用户定义的函数,以便当我从一个表中删除一行时,另一个表中的特定行也会被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713694/

相关文章:

php - 无法插入到wordpress数据库中

sql - MySQL 中的日期比较问题

mysql - SSRS 使用数据库中的每一列作为 x 轴绘制多条线

mysql - SQL : Order by when a value looks like a date

mysql - 在这个 Mysql 选择表示例中,U. 来自哪里?

php - 如何使用 PHP 和 MySQL 数据库制作预订 ID?

mysql - 在 MySQL 中将转义的 UTF-16(JSON 实体)转换回正常的 UTF-8

python - 如何在Python中导入mysql模块?

php - 选择 5 秒前插入的行

php - 从 mysql View 中选择数据