zoukankan      html  css  js  c++  java
  • 字段、约束和索引在存储过程中的判断

    1.查询命令

    use 数据库名称;
    
    查询列命令:select * from information_schema.columns where table_schema = database() and table_name ='数据表名称';
    
    查询约束命令:select * from information_schema.table_constraints where table_schema = database() and table_name ='数据表名称';
    
    查询索引命令:select * from information_schema.statistics where table_schema = database() and table_name ='数据表名称';

    2.存储过程添加索引

    delimiter $$
    
    drop procedure if exists create_index_procedure $$
    
    create procedure create_index_proc(tableName varchar(64), indexName varchar(64), columnName varchar(64))
    
    begin
    
     if not exists (select * from information_schema.statistics where table_schema = database() and table_name = tableName and index_name = indexName) then
    
      set @statement = concat("create index ", indexName, " on ", tableName, "(", columnName, ")");
    
         prepare pre_stmt from @statement;
    
         execute pre_stmt;
    
     end if;
    
    end$$
    
    delimiter ;

    3.存储过程添加字段

    delimiter $$
    
    drop procedure if exists add_column_proc $$
    
    create procedure add_column_proc(tableName varchar(64), columnName varchar(64), property varchar(64))
    
    begin
    
     if not exists (select * from information_schema.columns WHERE table_schema = database() and table_name = tableName and column_name = columnName) then
    
      set @statement = concat("alter table ", tableName, " add column ", columnName, " ", property);
    
         prepare pre_stmt from @statement;
    
         execute pre_stmt;
    
    end if;
    
    end$$
    
    delimiter ;

    4.存储过程添加约束

    delimiter $$
    
    drop procedure if exists add_constraint_proc $$
    
    create procedure add_constraint_proc(tableName varchar(64), constraintName varchar(64), property varchar(64))
    
    begin
    
     if not exists (select * from information_schema.table_constraints where table_schema = database() and table_name = tableName and constraint_name = constraintName) then
    
      set @statement = concat("alter table ", tableName, " and constraint ", constraintName, " ", property );
    
         prepare pre_stmt from @statement;
    
         execute pre_stmt;
    
    end if;
    
    end$$
    
    delimiter ;

    https://mp.weixin.qq.com/s/JC0XQV3xHU7G4tbcflKvfA

    阅读是一种修养,分享是一种美德。
  • 相关阅读:
    爬取数据问题
    b站评论区爬取
    词云图制作
    情感分析
    一个progressbar widget
    jQuery ui effects
    在使用jQuery的时候不小心的内存泄漏
    在javascript中实现类似asp.net webcontrol中的render的方法
    jQuery 1.7的隐藏改动
    jQuery编写widget的一些窍门
  • 原文地址:https://www.cnblogs.com/bien94/p/14835537.html
Copyright © 2011-2022 走看看