从 MySQL 表中删除约束

Rashmi Patidar 2023年1月30日 2022年7月18日
  1. 在 MySQL 中创建具有约束的表
  2. 从 MySQL 表中删除约束
从 MySQL 表中删除约束

约束是一组规则或限制,禁止在 MySQL 列中输入数据。MySQL 中的表具有用户想要限制的各种属性或列。

应用的障碍禁用 MySQL 列集中所有类型的数据值的允许,从而提供跨列的一致性。它仅启用应用的约束集定义中允许的值。

在 MySQL 中创建具有约束的表

在 MySQL 中,用户可以将约束与表模式一起应用到列上。这些约束可以是下面给出的两种类型。

  1. 列级约束
  2. 表级约束

使用约束创建表的语法:

Create table tablemname
 attributeName1 attributeType constraint,
 attributeName2 attributeType constraint,
 ...
 attributeNameN attributeType constraint,
 TableLevelConstraint(AttributeName)

上面代码中的语法显示了如何为每个创建表级和列级约束。两者背后的想法是赋予用户根据需要添加约束的权限。

  1. 列级约束:在定义属性名称时定义 non-nullunique 等约束类型。这意味着约束名称在提供属性的数据之后。
  2. 表级约束:约束的类型在表定义的末尾定义。这些约束类似于 PrimaryKey ForeignKeyIndex 约束。

实际查询表之前的查询列表:

create table studentPK ( id varchar(255) not null, firstName varchar(255), lastname varchar(255), age integer, primary key (id));

上面的命令创建了一个表 studentPK,其属性包括 idfirstNamelastNameage主键 约束是 MySQL 中定义的一个关键字,用于创建表的主键或唯一标识符。

该语法在其参数中采用参数以使属性成为主键。

Describe studentPK;

另一个查询是描述创建的表。下面显示的图像说明了输入到 studentPK 表的字段中的约束。

表中有约束的实际运行

从 MySQL 表中删除约束

在 MySQL 中执行 DROP 约束的查询:

Alter table studentPK drop primary key;

上述语法使用 Alter 关键字更改 studentPk 的语法。由于约束在表级别,因此很容易在表级别很好地删除。

Alter 命令最适合更改表的模式。它通过从同一表中删除主键来更改 StudentPk 表的模式。

下面是相同的本地运行图像。

从 studentPk 表中删除主键约束

同样,当在其他表中使用相同的键时,它会通过删除另一个表的外键而被删除。

查询创建外键约束:

create table studentDept ( deptid varchar(255) not null, deptName varchar(255), id varchar(255), foreign key(id) references studentPK (id));

上面的查询在另一个关系 studentDept 表上创建了一个外键作为 id。外键是通过使用关键字 foreign key 形成的。

除了关键字之外,它还需要 references 关键字来链接父表以使两个表相互依赖。references 关键字将 studentPk 表的 id 字段绑定为 studentDept 表中的外键。

输出可以在下图中得到验证:

在 MySQL 中创建具有外键约束的新表

在内部创建外键时,会创建该键的新键名。描述表和查看名称的语句如下:

SHOW CREATE TABLE studentDept;

下面是控制台输出的图片,可以看到 MySQL 中的表结构。

描述 MySQL 表和约束名称

上图显示外键是用名称 studentdept_ibfk_1 创建的。现在,很容易删除具有创建名称的外键。

Alter table studentDept drop foreign key studentdept_ibfk_1;

上面的查询从 studentDept 表中删除了外键。Alter 命令表明更改发生在模式级别。

外键从 studentDept 表中删除。可以使用 describe 命令重新检查它。

删除外键之前要记住的几点:

  1. 外键名是需要的。从表中删除约束需要一个键。

  2. 不知道键名的 drop 命令导致如下所示的错误:

    不使用键名时删除外键约束时出错

  3. SHOW CREATE TABLE 命令是强制性的。

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - MySQL Table