MySql 删除数据表

定义:

删除数据表就是删除数据库中已经存在的表。请注意,当表被删除时,表的定义和表中的所有数据都将被删除。因此,在执行删除操作之前,最好对表中的数据进行备份,以避免无法挽回的后果。本节详细说明如何删除数据库表。

[En]

To delete a data table is to delete a table that already exists in the database. Note that when the table is deleted, the definition of the table and all data in the table are deleted. Therefore, before the delete operation, it is best to make a backup of the data in the table to avoid irreparable consequences. This section explains in detail how to delete database tables.

1 删除一个或多个没有被其他表关联的数据表

如果一个数据表没有和其它表存在关联关系,即删除它自己对其它表没有影响的话,可以借助 DROP TABLE 。语法格式:

DROP TABLE [IF EXSITS] 表1 ,表2,...,表n ;

解释:表n”指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表名依次写在后面,相互之间用逗号隔开即可。如果要删除的数据表不存在,则MySQL会提示一条错误信息,”ERROR 1051 (42S02): Unknown table ‘表名'”。参数”IF EXISTS”用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候,如果表不存在,SQL语句可以顺利执行,但是会发出警告(warning)

案例1:

1.1 新建一张表

CREATE TABLE tb_school (

id INT(10) PRIMARY KEY,
name VARCHAR(11)
)

1.2 执行删除命令

DROP TABLE IF EXISTS tb_school;

1.3 结果检查

删除前:

删除后:

从执行结果可以看到,数据表列表中已经不存在名称为tb_school的表,删除操作成功。

2 删除被其他表关联的主表

在数据表之间存在外键关联的情况下,如果直接删除父表,结果将失败,因为直接删除会破坏表的引用完整性。如果必须删除,可以先删除与其关联的子表,然后再删除父表,但同时删除两个表中的数据。在某些情况下,您可能希望保留子表,而要单独删除父表,只需取消关联表的外键约束,然后即可删除父表。

[En]

In the case where there is a foreign key association between the data tables, if you delete the parent table directly, the result will fail because the direct deletion will destroy the referential integrity of the table. If you have to delete, you can first delete the child table associated with it, and then delete the parent table, but you delete the data in both tables at the same time. In some cases, you may want to keep the child table, and to delete the parent table separately, simply cancel the foreign key constraint of the associated table, and then you can delete the parent table.

案例2

2.1 创建两张具有关联关系的表

CREATE TABLE tb_school ( id INT ( 11 ) PRIMARY KEY, name VARCHAR ( 22 ) );

CREATE TABLE tb_classroom (
id  INT(11) PRIMARY KEY,
schoolId INT(11),

CONSTRAINT fk_emp_school FOREIGN KEY(schoolId) REFERENCES tb_school(id)
)

MySql 删除数据表

可以看到,以上执行结果创建了两个关联表tb_school和表tb_classroom。其中,tb_classroom表为子表,具有名称为fk_emp_school的外键约束;tb_school为父表,其主键id被子表tb_classroom所关联。

2.2 执行删除DROP TABLE命令

执行结果显示,存在外键关联,不能删除。在这种情况下,有两种处理方法:

[En]

The execution results show that it cannot be deleted because there is a foreign key association. In this case, there are two ways to handle it:

一: 先删除子表 tb_classroom ,再删除 父表tb_school,可参考 1 方法,这里不再赘述

第二步:取消表前的外键关系,然后进行删除。

[En]

Second: cancel the foreign key relationship before the table, and then perform the deletion.

2.3 取消外键关系,再删除。

ALTER TABLE tb_classroom DROP FOREIGN KEY fk_emp_school

MySql 删除数据表

因此,在执行成功后,执行删除命令以显示删除成功。

[En]

As a result, after the execution is successful, the delete command is executed to show that the deletion is successful.

MySql 删除数据表

文章连接:https://www.cnblogs.com/xiong97/p/16564428.html

Original: https://www.cnblogs.com/xiong97/p/16564428.html
Author: 静言善思
Title: MySql 删除数据表

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505075/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SQL语句大全–SQL

    前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证s…

    数据库 2023年5月24日
    0105
  • 04-MySQL锁

    数据库锁 1、SQL语言包括那几个部分 SQL语言包括 数据定义(DDL)、数据操纵(DML)、数据控制(DCL)和数据查询(DQL)四个部分 2、每部分都有哪些操作关键词 数据定…

    数据库 2023年6月16日
    0126
  • Mysql索引底层数据结构与算法

    一.索引概述是什么:索引是帮助MySQL高效获取数据的排好序的数据结构,索引叫”键”,优化好一个索引,可以提高数倍的性能, 类似于字典的音序表为什么要键索引…

    数据库 2023年6月11日
    0170
  • MVCC多版本并发控制的理解

    前置知识 当前读与快照读 当前读什么是当前读:读取的是 最新的数据,不会读到老数据。 何时&…

    数据库 2023年5月24日
    0113
  • 【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object

    报错信息:Error getting generated key or setting result to parameter object. Cause: org.apache….

    数据库 2023年6月6日
    0102
  • 阻塞非阻塞和同步异步的区分 参考一些书籍

    编程中一直对这两个概念不是很理解,在网上搜了很多资料大概描述的其实都很模糊,有时候还自相矛盾,很容易搞混,这里说一下我对这两个概念的理解。首先看一下相关技术书籍对这两个概念的描述,…

    数据库 2023年6月16日
    0298
  • podman(无根用户管理podman)

    用户操作在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,…

    数据库 2023年6月14日
    0135
  • Volatile的学习

    首先先介绍三个性质 可见性 可见性代表主内存中变量更新,线程中可以及时获得最新的值。 下面例子证明了线程中可见性的问题 由于发现多次执行都要到主内存中取变量,所以会将变量缓存到线程…

    数据库 2023年6月11日
    0124
  • 如何识别 SQL Server 的版本

    本文介绍如何识别当前的Microsoft SQL Server 版本号和相应的产品或Service Pack 级别。同时介绍如何识别正在使用的SQL Server 具体版本。 如何…

    数据库 2023年6月11日
    0103
  • JavaWeb过滤器Filter(附tomcat部分源码分析)

    过滤器Filter 过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理。过滤器可…

    数据库 2023年6月16日
    0175
  • MySQL8.0 redo日志系统优化

    现在主流的数据库系统的故障恢复逻辑都是基于经典的ARIES协议,也就是基于undo日志+redo日志的来进行故障恢复。redo日志是物理日志,一般采用WAL(Write-Ahead…

    数据库 2023年6月9日
    0142
  • 关于在vue项目中引入<el-img>标签失败的问题

    问题如下 语法没有写错,但是冒号错了,不能在img后面紧接着冒号 只能在src前面紧接着冒号 Original: https://www.cnblogs.com/ly-heker/…

    数据库 2023年6月11日
    0130
  • BFS与DFS套路总结

    概述 深度优先遍历和广度优先搜索和广度优先搜索是解决图问题最常见的方式,并且在leetcode中有许多相关的变体,但万变不离其宗,其本质结构或者算法框架时固定的,因此本文BFS和D…

    数据库 2023年6月11日
    0154
  • Python 学习笔记(六)–线程

    1.自定义进程 自定义进程类,继承Process类,重写run方法(重写Process的run方法)。 from multiprocessing import Process im…

    数据库 2023年6月16日
    0168
  • Java面试题(五)–Rabbits

    1、什么是MyBatis? 1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建…

    数据库 2023年6月16日
    0139
  • 2_JDBC

    使用客户端工具访问数据库, 需要手工建立连接, 输入用户名和密码登陆, 编写SQL语句, 点击执行, 查看操作结果(结果集或受行数影响) 在实际开发中, 当用户的数据发生改变时, …

    数据库 2023年6月11日
    0107
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球