精华内容
下载资源
问答
  • 如何删除表的外键约束
    2022-06-25 16:11:06

    8.4.2 删除有外键约束的主表

    删除有外键约束的主表时,如果直接删除主表,MySQL会报错。此时,有两种方式删除有外键约束的主表,一种方式是先删除有外键约束的从表,再删除主表;另一种方式为先解除外键约束,再删除主表。

    在大多数情况下,删除有外键约束的主表时需要保留从表,所以本节先简单介绍如何解除外键约束,然后再删除主表。另一种方式是先删除从表,再删除主表,这种方式比较简单,读者只需要按照顺序先删除从表,再删除主表即可。

    在8.1.3节中,数据表t_goods_category与数据表t_goods具有外键约束,并且t_goods_category为主表,t_goods为从表。此时,直接删除主表t_goods_category,MySQL会抛出错误信息。


    mysql> DROP TABLE t_goods_category;
    ERROR 3730 (HY000): Cannot drop table 't_goods_category' referenced by a foreign key constraint 
    'foreign_category' on table 't_goods'.
    

    可以看到,直接删除主表t_goods_category时,MySQL会抛出“不能删除表t_goods_category,在t_goods中存在外键约束”。

    接下来按照8.3.9节中的介绍,取消数据表t_goods_category与数据表t_goods的

    更多相关内容
  • 在MySQL中删除一张或一条数据的时候,出现 [Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...) 这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置...
  • 删除表不是特别常用,特别是对于存在外键关联的删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库...
  • mysql删除外键约束

    2022-05-17 19:02:51
    1.通过数据库创建的语句查看外键约束名 SHOW CREATE TABLE movie -- 建表语句如下 CREATE TABLE `movie` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) DEFAULT NULL, `filename` VARCHAR(255...

    1.通过数据库创建表的语句查看外键约束名

    SHOW CREATE TABLE movie
    
    -- 建表语句如下
    CREATE TABLE `movie` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(255) DEFAULT NULL,
      `filename` VARCHAR(255) DEFAULT NULL,
      `videoname` VARCHAR(255) DEFAULT NULL,
      `categoryid` INT(11) DEFAULT NULL,
      `areaid` INT(11) DEFAULT NULL,
      `author` VARCHAR(255) DEFAULT NULL,
      `yeartime` VARCHAR(255) DEFAULT NULL,
      `playtime` VARCHAR(255) DEFAULT NULL,
      `content` TEXT,
      `cs` INT(11) DEFAULT NULL,
      `score` DECIMAL(10,2) DEFAULT NULL,
      `create_time` DATETIME DEFAULT NULL,
      `update_time` DATETIME DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `fk_movie_category` (`categoryid`),
      KEY `fk_movie_area` (`areaid`),
      CONSTRAINT `fk_movie_area` FOREIGN KEY (`areaid`) REFERENCES `area` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT `fk_movie_category` FOREIGN KEY (`categoryid`) REFERENCES `category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=INNODB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8
    

    2.解除外键约束

    `fk_movie_category`
    `fk_movie_area`
    
    ALTER TABLE movie DROP FOREIGN KEY `fk_movie_category`
    ALTER TABLE movie DROP FOREIGN KEY `fk_movie_area`
    

    至此,外键约束就解除,可以进行删除外键等操作。

    展开全文
  • 如何删除表外键约束

    千次阅读 2020-08-02 14:43:16
    删除表外键约束 我们曾在第一章中讲过外键的作用,以及如何创建一个的外键。建立了外键我们就建立起了两张的关联关系,那如果我想删除呢?为了确保数据库的正确性,我们必须先解除两个之间的关联关系,...

    时间煮雨
    @R星校长

    删除表的外键约束

    我们曾在第一章中讲过外键的作用,以及如何创建一个表的外键。建立了外键我们就建立起了两张表的关联关系,那如果我想删除主表呢?为了确保数据库的正确性,我们必须先解除两个表之间的关联关系,那就是删除外键约束啦!让我们先来看看删除外键约束的语法规则。

    语法规则为: ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 。
    举个例子: 我们先建立了一个主表 country,表结构如下图所示:

    1
    然后建立一个有外键约束的子表Mall_products2,让它的键country_id作为外键关联到country的主键idSQL语句如下:

    CREATE TABLE Mall_products2
    (
    id INT(11) PRIMARY KEY,
    country_name VARCHAR(20) NOT NULL,
    country_id INT(11) NOT NULL,
    CONSTRAINT prod_country FOREIGN KEY(country_id) REFERENCES country(id)
    )
    

    上述语句成功执行后,在表Mall_products2上添加了名称为prod_country的外键约束,外键名称为prod_country,依赖于表country的主键id,从下图中可以看到,已经成功添加了表的外键:
    2
    Mall_products2表结构如下图所示:
    3
    下面开始删除外键约束,语句如下:
    ALTER TABLE Mall_products2 DROP FOREIGN KEY prod_country;

    使用SHOW CREATE TABLE查看表 Mall_products2 的结构,结果如下:
    4
    我们可以看到,FOREIGN KEY不见了,外键约束删除成功!

    接下来你们可以自行体验一下了!   在这里插入图片描述

    展开全文
  • 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加...删除所有外键查询schema中所有外键名称...

    数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关系。

    在实际开发中,数据库中一般不会存在外键,阿里的开发手册中也强制不使用外键与级联操作,一切外键概念必须在应用层解决。如果数据库中已存在外键了,怎么办呢?

    删除所有表的外键

    查询schema中所有外键名称然后拼接生成删除语句,再执行。

    SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,' ;')

    FROM information_schema.TABLE_CONSTRAINTS c

    WHERE c.TABLE_SCHEMA='库名' AND c.CONSTRAINT_TYPE='FOREIGN KEY';

    1

    2

    3

    修改MySQL变量FOREIGN_KEY_CHECKS

    -- 禁用外键约束

    SET FOREIGN_KEY_CHECKS = 0

    -- 启用外键约束

    SET FOREIGN_KEY_CHECKS = 1;

    1

    2

    3

    4

    由于FOREIGN_KEY_CHECKS是基于session的,当关闭了session重新建立连接,这个变量就会恢复默认值,也就是开启外键约束,当然我们也可以全局的FOREIGN_KEY_CHECKS变量。

    SET GLOBAL FOREIGN_KEY_CHECKS = 0;

    1

    或者:

    SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0;

    1

    修改完成后,我们可以查看修改后的结果

    SELECT @@FOREIGN_KEY_CHECKS;

    ---------------------

    作者:李阿飞

    来源:CSDN

    原文:https://blog.csdn.net/junlovejava/article/details/78360253

    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用PowerDesigner建立物理...再把结果中的删除语句拿出来执行,删除数据库中所有外键约束 SELECT CONCAT('ALTER
  • MySQL的外键约束是用来在两个之间建立链接的,其中一个发生变化,另外一个也发生变化。从这个特点来看,它主要是为了保证数据的一致性和完整性的。 对于两个通过外键关联的,相关联字段中主键所在的是主...
  • 8.3.9 取消数据外键约束 1.语法格式 取消数据外键约束的语法格式如下: ALTER TABLE 表名 DROP FOREIGN KEY 外键名 使用DROP FOREIGN KEY关键字删除表中的外键。 2.简单示例 在8.1.3节中我们...
  • 主要介绍了django在开发中取消外键约束的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 文章目录数据约束主键约束 数据约束 为防止错误的数据被插入到数据,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为约束。常见约束如下: 以上五种约束条件针对中字段进行限制从而保证...
  • oracle查看主外键约束关系,根据此SQL可以进行主外键约束的查询!
  • 删除表外键约束

    2020-01-10 16:25:51
    alter table 表名 drop foreign key 外键别名
  • 创建两个TblTestA,TblTestB,删掉TblTestA create table dbo.TblTestA( Id bigint primary key identity(1, 1), name varchar(20) unique, ) create table dbo.TblTestB( Id ...
  • 展开全部删除外键约束,首先要删除外键关联,然后才可以删除表。如:1、创建62616964757a686964616fe78988e69d8331333337616439author :CREATETABLE[dbo].[author]([ID][bigint]NOTNULLPRIMARYKEY,[AuthorName...
  • 1.先删除原来的外键 alter table xscj drop constraint FK_kcxx_课程编号2.再增加新的带CASCADE的外键 alter table xscj add constraint FK_kcxx_课程编号 foreign key(课程编号) references kcxx(课程编号) on ...
  • MySQL 如何删除外键约束数据 今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 SET FOREIGN_KEY_CHECKS=0; 删除,更新数据, 恢复外键 ...
  • MySQL 如何删除外键约束数据

    万次阅读 多人点赞 2019-05-18 17:32:24
    MySQL 如何删除外键约束数据 今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 SET FOREIGN_KEY_CHECKS=0; 删除,更新数据, 恢复外键 SET...
  • Mysql外键约束怎么删除

    千次阅读 2021-05-03 17:01:42
    记录一下碰到的问题。由于我是使用PowerDesigner来建mysql物理...它不让我删除,说存在外键约束删除会破坏他们的结构。 外键约束:让数据库自己通过外键来保证数据的完整性和一致性,让他们的关联性更强。 虽然它是有
  • MySQL常用数据类型 int 整 型 float 单精度浮点,4字节32位 double 双精度浮点,8字节64位 char 固定长度的字符类型 varchar 可变长度的字符类型 ...查看数据库中包含的 要先使用USE切换到数据
  •  外键是用来实现参照完整性的,不同的外键约束方式将可以使两张紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。  这里以MySQL为例,总结一下3种外键约束方式的区别和联系。  ...
  • 项目中需要把一个数据库的部分插入到另外一个数据库,设计到外键约束,写了一个程序对主进行排序,插入的时候再也不用去考虑外键约束问题了
  • 外键约束(FOREIGN KEY(字段) REFERENCES 主表名(字段)) 外键约束的作用: 限定某个字段的引用完整...我们只需要记住: 我们在"从"中指定外键约束,那么我们就可以知道那个是从了,知道了哪个是从,那么我们也就知
  • 的完整性约束-外键约束

    千次阅读 2021-01-24 16:18:00
    外键约束可以使两张紧密的结合起来,特别是针对修改或者删除的级联操作时,会保证数据的完整性。 外键是指中某个字段的值依赖于另一张中某个字段的值,而被依赖的字段必须具有主键约束或者唯一约束。被依赖的...
  • 展开全部1、创建主键,test_class,并建立class_id字段为主键;create table test_class(class_id number, class_name varchar2(20));-- Create/Recreate indexesalter table TEST_CLASSadd constraint P_CLASS_ID...
  • oracle 删除外键约束 禁用约束 启用约束oracle 删除外键约束 禁用约束 启用约束 执行以下sql...备忘:MySQL中修改中某列的数据类型、删除外键约束-- MySQL中修改中某列的数据类型 ALTER TABLE [COLUMN] 表名 M...
  • 【MySQL】外键约束

    千次阅读 2021-12-17 10:08:11
    外键约束可以使两张紧密结合起来,特别是对于删除/修改级联操作时,会保证数据的完整性。 子/从:使用外键约束 (学生:学号,姓名,性别,年龄,班级号) 父/主:含有被依赖的字段的(班级...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,419
精华内容 40,567
关键字:

如何删除表的外键约束