mysql - 如何删除mysql中四个表的记录?

标签 mysql sql database

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/

相关文章:

mysql - 我不确定 : Is this an anti-join?

mysql - 请教我如何优化这个 MySQL 查询

mysql - 使用多个左连接优化 MySQL 查询

sql - 如何在 Entity Framework 5 中使用基于 SQL session 的表

linux - Linux 中的 Oracle 数据库安装程序 [INS-10102] 安装程序初始化失败

mysql - 当计算机意外关闭时,mysql 数据会发生什么情况?

php - 删除sql转储文件

php - 如何从 cakePHP 中的不同 Controller 将数据插入表

PHP不会创建mysql表,但是可以手动输入。

java - 将设置存储到数据库行中