`
roomy
  • 浏览: 52715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL 判断和删除索引和表外键

    博客分类:
  • DB
 
阅读更多
--
-- Procedure Of Delete Index
--
DROP PROCEDURE IF EXISTS DEL_IDX;
CREATE PROCEDURE DEL_IDX(IN P_TABLE_NAME varchar(200), IN P_IDX_NAME VARCHAR(200))
BEGIN
DECLARE ST VARCHAR(250);
  SET @ST=CONCAT(' DROP INDEX ', P_IDX_NAME, ' ON ', P_TABLE_NAME);
  SELECT count(*) INTO @CNT FROM information_schema.statistics WHERE table_name=P_TABLE_NAME and index_name=P_IDX_NAME;
  IF @CNT >0 THEN
    PREPARE stmt FROM @ST;
    EXECUTE stmt;
  END IF;
END;
CALL DEL_IDX('T_NAME, 'IDX_NAME');
DROP PROCEDURE IF EXISTS DEL_IDX;

--
-- Procedure Of Delete FK
--
DROP PROCEDURE IF EXISTS DEL_FK;
CREATE PROCEDURE DEL_FK(IN P_TABLE_NAME varchar(200), IN F_K_NAME VARCHAR(200))
BEGIN
DECLARE ST VARCHAR(250);
  SET @ST=CONCAT(' ALTER TABLE ', P_TABLE_NAME, ' DROP FOREIGN KEY ', F_K_NAME);
  SELECT COUNT(*) INTO @CNT FROM information_schema.key_column_usage WHERE table_name=P_TABLE_NAME and constraint_name=F_K_NAME;
  IF @CNT >0 THEN
    PREPARE stmt FROM @ST;
    EXECUTE stmt;
  END IF;
END;
CALL DEL_FK('T_NAM, 'FK_NAME);
DROP PROCEDURE IF EXISTS DEL_FK;

 

分享到:
评论

相关推荐

    Mysql增加外键的方法

    在数据库管理系统中,外键是用来建立和加强两个表数据之间链接的一类约束。在MySQL数据库中,可以通过特定的语法结构来增加外键,即便在建表时未设置外键也能在之后进行添加。本文详细介绍了在MySQL中增加外键的方法...

    MySQL中利用外键实现级联删除、更新

    在 MySQL 中,外键是指在一个表中的一列或多列,引用另一个表中的主键或唯一索引。外键可以强制实施数据的一致性和完整性,使得数据更加可靠。外键在 MySQL 中的实现主要是通过 InnoDB 存储引擎来实现的。只有 ...

    删除数据库的所有表、存储过程、主键、外键、索引等

    总之,删除数据库的所有表、存储过程、主键、外键和索引是一项重要的维护任务,需要谨慎处理。理解这些元素的作用和如何删除它们是数据库管理员的基本技能。正确执行这些操作有助于保持数据库的整洁和高效,同时也为...

    MySQL SQL高级特性 字段约束-索引-视图-外键学习实践

    总结来说,字段约束、索引、视图和外键是MySQL数据库设计和优化的重要组成部分。通过理解和合理使用这些特性,可以有效地提高数据库管理的效率和数据操作的性能。在实际应用中,应当根据具体的数据模型和业务需求...

    mysql外键设置

    - **实现数据的一致性**:外键可以确保当在从表中插入一条记录时,该记录中指向主表的字段必须存在于主表中相应的主键或唯一索引中。 - **维护关系的完整性**:通过定义外键,可以在删除或更新主表的数据时,自动...

    mysql处理添加外键时提示error 150 问题的解决方法

    例如,外键的引用类型不一样,主键是 int 外键是 char,或者找不到主表中引用的列,或者主键和外键的字符编码不一致等。 解决方案是在 sql 后面加上了 ENGINE=INNODB DEFAULT CHARSET=utf8; charset 对应的换成你的...

    mysql外键的设置方法

    在定义外键之前,需要确保主表和子表中相应的字段都已经设置了索引。索引可以提高查询速度,同时也使得外键的设置成为可能。 示例代码如下: ```sql -- 在主表 parts 中添加索引 ALTER TABLE parts ADD INDEX idx_...

    MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引

    在MySQL数据库的学习中,多表查询是至关重要的一个环节,它涵盖了外键、表连接、子查询以及索引等多个核心概念。这些知识点是理解和优化数据库性能的基础,对于任何数据库管理员或者开发人员来说都是必备技能。 ...

    MySQL外键使用及说明详解

    MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 外键的使用条件:  1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);  2.外键列必须建立了索引,...

    MySQL外键详解

    - **解决方案**:通过在外键上定义适当的约束(例如`ON DELETE CASCADE`),可以确保在删除`商品表`中的记录时,自动将`销售单据表`中所有引用该商品ID的记录一起删除,从而保证数据的完整性和一致性。 #### 三、...

    MySql外键设置详解

    例如,创建两个表:parent 和 child,parent 表中有一个字段 id,child 表中有一个字段 parent_id,该字段是外键,引用 parent 表的 id 字段。 ```sql CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE...

    MySql练习4:创建学生表和成绩表索引并查看索引.zip

    虽然索引能提高查询性能,但也会占用额外的存储空间,并且在插入、更新和删除操作时需要维护索引,这可能会影响写操作的性能。因此,合理地设计和选择索引是至关重要的。 6. **优化索引策略**: - 索引的选择性越...

    (mysql面试题)MySQL中的索引、主键和外键的概念及其作用及代码展示.txt

    ### MySQL中的索引、主键和外键的概念及其作用 #### 1. 索引(Index) **定义与作用** 索引是数据库中一种特殊的数据结构,它能够显著提高查询速度。通过索引,数据库管理系统可以快速地定位到表中的特定行,而...

    MySQLSQL高级特性字段约束-索引-视图-外键学习实践.rar

    本教程主要探讨MySQL中的四大核心高级特性:字段约束、索引、视图和外键。这四个概念是数据库设计和管理的基础,对于提升数据库性能和确保数据完整性至关重要。 ### 字段约束 字段约束是定义数据库表结构时用来限制...

    如何在MySQL数据库中定义外键

    为了定义外键,我们需要确保参照表(即 `pc` 表)和被参照表(即 `parts` 表)中相应的字段已经设置了索引。可以通过以下 SQL 语句实现: 对于 `parts` 表: ```sql ALTER TABLE parts ADD INDEX idx_model (model...

    mysql数据库设置外键应该注意的几点

    在MySQL数据库中,外键是实现表间关系的重要机制,它确保了数据的一致性和完整性。设置外键时,有几点需要注意,以确保数据库设计的规范性和高效性。以下是对这些关键点的详细阐述: 1. **外键约束定义**: 外键是...

    MySQL数据库:删除索引.pptx

    需要注意的是,删除主键索引会移除表的唯一标识符,这可能会影响到与其他表的关联或外键约束。 在删除索引时,需要考虑的一个重要因素是列的删除。如果从表中删除了某个列,而该列是索引的一部分,那么这个列也会从...

    MySQL Innodb 索引原理详解

    ### MySQL Innodb 索引原理详解 #### 1. 各种树形结构 在深入探讨MySQL Innodb索引之前,我们先...此外,还讨论了InnoDB与MyISAM的主要差异,以及索引的插入和删除操作。对于理解和优化MySQL数据库的性能至关重要。

    数据库新手入门之MySQL中如何定义外键

    本文介绍了在MySQL数据库中定义数据表、设置索引、定义外键、级联等操作。下面将详细说明标题和描述中所说的知识点。 首先,文章中提到了创建数据表的过程,例如创建parts表和Pc表。其中,parts表用于保存配件供货...

Global site tag (gtag.js) - Google Analytics