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

    阅读是一种修养,分享是一种美德。
  • 相关阅读:
    org.hibernate.annotationexception no identifier specified for entity
    PL/SQL Developer 中文乱码解决
    cron表达式
    mysql远程连接的设置
    linux查看端口对应的程序及pid
    安卓开发分享功能,分享到facebook网页上不显示图片的问题
    win7下解压安装mysql的方法
    总结一下论文写作过程中的一些东西
    java中可以让程序暂停几秒执行的代码
    Neo4j图数据库使用
  • 原文地址:https://www.cnblogs.com/bien94/p/14835537.html
Copyright © 2011-2022 走看看