mysql> desc courses;
+--------------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------------+------+-----+---------+----------------+
| course_id | int(11) | NO | PRI | NULL | auto_increment |
| course_name | varchar(50) | NO | UNI | NULL | |
| course_description | text | NO | | NULL | |
| course_added | datetime | NO | | NULL | |
| status | enum('Active','Inactive') | NO | | Active | |
+--------------------+---------------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> desc papers;
+-------------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------------------+------+-----+---------+----------------+
| paper_id | int(11) | NO | PRI | NULL | auto_increment |
| course_id | int(11) | NO | | NULL | |
| paper_name | varchar(50) | NO | | NULL | |
| paper_description | text | NO | | NULL | |
| paper_added | datetime | NO | | NULL | |
| status | enum('Active','Inactive') | NO | | Active | |
+-------------------+---------------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql> desc question_sets;
+-----------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------------------+------+-----+---------+----------------+
| set_id | int(11) | NO | PRI | NULL | auto_increment |
| paper_id | int(11) | NO | | NULL | |
| set_name | varchar(100) | NO | | NULL | |
| set_description | text | NO | | NULL | |
| set_maxtime | time | NO | | NULL | |
| created_date | datetime | NO | | NULL | |
| status | enum('Active','Inactive') | NO | | Active | |
+-----------------+---------------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
mysql> desc questions;
+---------------+---------------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------------------------------------+------+-----+---------+----------------+
| question_id | int(11) | NO | PRI | NULL | auto_increment |
| set_id | int(11) | NO | | NULL | |
| question_text | varchar(50) | NO | | NULL | |
| option_1 | varchar(50) | NO | | NULL | |
| option_2 | varchar(50) | NO | | NULL | |
| option_3 | varchar(50) | NO | | NULL | |
| option_4 | varchar(50) | NO | | NULL | |
| answer | enum('option_1','option_2','option_3','option_4') | NO | | NULL | |
| status | enum('Active','Inactive') | NO | | Active | |
+---------------+---------------------------------------------------+------+-----+---------+----------------+
这些是四个表,表类(class)连接到论文表论文连接到问题集,问题集连接到问题如果我删除表“类(class)”中的 course_id=1 对应于表论文中的 course_id 的行应该被删除并且对应于表 question_sets 中的 paper_id 的行应该被删除,对应于表 questions 中的 question_id 的行应该被删除询问??
delete from papers where course_id IN (select course_id from courses where course_id=7);
注意:上面的查询删除了paper表中的行
最佳答案
为什么要在一个查询中从四个表中删除?四个删除语句有什么问题?如果您需要确保所有删除操作都是自动执行的,那么请将这四次删除操作包装在一个事务中。
关于mysql - 如何删除mysql中四个表的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194696/