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)

大家都在看

  • Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署。 有关如何在 Jexus …

    数据库 2023年6月11日
    097
  • Git命令列表–git-config

    git config 查看、编辑Git的配置文件 配置文件的范围和语法 $ git config usage: it config [] Config file location …

    数据库 2023年6月11日
    075
  • 一文读懂Redis

    Redis与NoSQL概述 Nosql的优势 使用nosql解决cpu与内存压力 使用nosql解决I/O压力 Nosql数据库的概述 NoSql= Not Only SQL 采用…

    数据库 2023年6月6日
    095
  • MySQL8新增降序索引

    MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙。桃花仙人种桃树,又摘桃花卖酒钱。 一、MySQL5.7 降序索引 MySQL 在语法上很早就已经支持降序索引,但实际上创建…

    数据库 2023年5月24日
    078
  • Spring(五)-Spring的其他知识点

    1、细说ServletContext、WebApplicationContext、Servlet的初始化 参考博客–>细说ServletContext、WebAp…

    数据库 2023年6月16日
    091
  • java 论坛模块设计方案

    权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限。(一个用户可以多个角色) 按钮权限: 给角色…

    数据库 2023年6月6日
    075
  • MySQL实战45讲 17

    17 | 如何正确地显示随机消息? 场景:从一个单词表中随机选出三个单词。 表的建表语句和初始数据的命令如下,在这个表里面插入了 10000 行记录: CREATE TABLE w…

    数据库 2023年6月14日
    054
  • Javaweb-Http、Maven及Servlet详解

    一、Http 1.什么事Http Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上 文本:html,字符串,~.. 超文本:图片,音乐,视屏,定位,地图…

    数据库 2023年6月16日
    083
  • Vue 和 Django 实现 Token 身份验证

    使用 Django 编写的 B/S 应用通常会使用 Cookie + Session 的方式来做身份验证,用户登录信息存储在后台数据库中,前端 Cookie 也会存储少量用于身份核…

    数据库 2023年6月14日
    068
  • 同时运行两个版本相同的tomcat

    由于项目需要,代理集群和一个节点都部署在本地,那么就需要有两个tomcat,一个部署集群,一个部署项目,我都用了7.0.34版本的tomcat 当启动代理的tomcat成功时,再启…

    数据库 2023年6月11日
    096
  • select,poll,epoll

    select、poll、epoll 区别总结: 底层实现 select/poll 首先把关注的Socket集合从用户态拷贝到内核态,然后由内核检测事件,遍历整个集合(由于线性结构实…

    数据库 2023年6月16日
    087
  • lvs负载均衡

    Lvs 一.Lvs简介 二. 体系结构 三. Lvs管理工具 1. ipvs 2. ipvsadm 四.lvs工作模式及原理 1.NAT模式 2. DR模式 3.TUN模式(隧道模…

    数据库 2023年6月14日
    089
  • Mybatis缓存机制

    MyBatis是常见的 Java数据库访问层框架。在日常工作中,多数情况下是使用 MyBatis的默认缓存配置减轻数据库压力,提高数据库性能,但是 MyBatis缓存机制有一些不足…

    数据库 2023年6月11日
    0116
  • Java面向对象程序设计(2)封装,继承和多态

    面向对象的三大特征是:封装,继承和多态 访问修饰符 java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围) : 访问级别 访问控制修饰符 同类 同包 …

    数据库 2023年6月16日
    058
  • 永久免费!国产操作系统 Deepin V20 Beta版发布(附安装教程)

    深度操作系统(DEEPIN)是武汉深之度科技有限公司致力于为全球用户提供美观易用、安全可靠的Linux发行版。经过一段时间的测试,这款操作系统的Beta版终于今天和大家见面了。这次…

    数据库 2023年6月9日
    0129
  • 为什么 SQL 语句使用了索引,但却还是慢查询?

    一、索引与慢查询 聊一聊索引和慢查询,经常遇到的一个问题:一个SQL语句使用了索引,为什么还是会记录到慢查询日志之中?为了说明,创建一个表t,该表3个字段,一个主键索引,一个普通索…

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