MYSQL将表名称修改成大写的存储过程_Mysql

本文为大家分享了MYSQL将表名称修改成大写的存储过程,具体内容如下

1. 条件:
1.1 Mysql设置对大小写敏感
2. 执行下述存储过程: 

#call uppercase('库名')
DROP PROCEDURE IF EXISTS uppercase;
CREATE PROCEDURE uppercase(IN dbname VARCHAR(200))
BEGIN 

DECLARE done INT DEFAULT 0;  

DECLARE oldname VARCHAR(200);  

DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname;  

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  

OPEN cur;  

REPEAT  

FETCH cur INTO oldname;  

SET @newname = UPPER(oldname);
SET @isNotSame = @newname <> BINARY oldname;
IF NOT done && @isNotSame THEN
SET @SQL = CONCAT('rename table `',oldname,'` to `', LOWER(@newname), '_tmp` ');
PREPARE tmpstmt FROM @SQL;
EXECUTE tmpstmt;  

SET @SQL = CONCAT('rename table `',LOWER(@newname),'_tmp` to `',@newname, '`');
PREPARE tmpstmt FROM @SQL;
EXECUTE tmpstmt; 

DEALLOCATE PREPARE tmpstmt;  

END IF;
UNTIL done END REPEAT;
CLOSE cur;
END

3. 执行一下语句
 call uppercase('库名');

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql修改表名称
mysql 表名称大小写、mysql 存储过程、mysql存储过程实例、mysql 存储过程 循环、mysql 调用存储过程,以便于您获取更多的相关知识。

时间: 2024-09-11 02:44:33

MYSQL将表名称修改成大写的存储过程_Mysql的相关文章

mysql建表常用sql语句个人经验分享_Mysql

连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\" 修改密码:mysqladmin -u用户名 -p旧密码 password 新密码 删除授权: revoke select,insert,update,delete om *.* from test2@localhost; 显示数据库:sh

mysql替换表中的字符串的sql语句_Mysql

核心语句: UPDATE `cdb_pms` SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临') mysql替换字段里数据内容部分字符串 mysql替换表的字段里面内容,如例子: mysql> select host,user from user  where user='testuser'; +-----------------------+----------+ | host                  | user    

Mysql建表与索引使用规范详解_Mysql

一. MySQL建表,字段需设置为非空,需设置字段默认值.二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL.三. MySQL建表,如果字段等价于外键,应在该字段加索引.四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比.五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个.六. 如果可以在多个索引中进行选择,MySQL通常

MySQL单表ibd文件恢复方法详解_Mysql

前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行恢复呢? 下文将进行详细分析. 恢复过程中需要用到的工具,percona data recover tool : https://launchpad.net/percona-innodb-recovery-tool 情况一:误删部分数据,需要用最近一次备份覆盖 来自同一台机器的ibd恢复覆盖,且备份

详解Mysql多表联合查询效率分析及优化_Mysql

1. 多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如: SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1,table2         由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢

mysql 跨表查询、更新、删除示例_Mysql

下面来谈谈跨表插入,更新和删除 首先讨论的是跨表查询: insert into `table_A` select * from `table_B`;注意*代表全部插入. 接着又讨论关于跨表更新 复制代码 代码如下: update `table_A`, `table_B` set `table_A`.`name` = `table_B`.`name` where `table_A`.`id` = `table_B`.`id`;

MySQL多表之间字段的匹配实现代码_Mysql

复制代码 代码如下: $sql=$empire->query("select table.title,lianxi,table.dizhi,table.id from table,table1 where table1.sid like concat( '%|',table.id,'|%') and table1.id=".$navinfor[id].""); while($r=$empire->fetch($sql)) { $title=$r['tit

mysql批量删除相同前缀的表和修改表名

如果有很多表需要删除,而表中有相同的前缀,我们可能需要如下语句:  代码如下 复制代码 drop table pre_tablename1; drop table pre_tablename2; drop table pre_tablename3; .......如果我们手动写,可能需要很多重复性的工作而且可能还不知道表名称.因此我们可以通过sql语句输出上面的删除表语句 执行sql语句:  代码如下 复制代码 Select CONCAT( 'drop table ', table_name,

MYSQL中约束及修改数据表

MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNIQUE KEY(唯一约束)    DEFAULT(默认约束)    FOREIGN KEY(外键约束) 29:查看数据表的存储引擎SHOW CREATE TABLE 数据表名; 30:删除表中的数据DELETE FROM 数据表名 WHERE 条件; 31:外键约束的参照操作(外键约束的要求解析)外