mysql把现有表字段改小写

更新时间:02-09 教程 由 幻想 分享

在操作MySQL中,有时需要把现有表中的字段名全部改成小写,这在数据迁移、表结构调整等情况下很常见。下面介绍如何使用MySQL语句实现该操作。

ALTER TABLE 表名 CHANGE 字段名 新字段名 数据类型;

其中,表名和字段名都需要改成小写。如果不确定字段的数据类型,可以使用DESCRIBE语句查询。

DESCRIBE 表名;

通过查询表的结构可以确定字段的数据类型及其他信息。接下来,我们可以使用循环语句将表中所有字段名全部改成小写。

DELIMITER $$DROP PROCEDURE IF EXISTS `change_column_name`$$CREATE PROCEDURE `change_column_name`(IN tbl_name VARCHAR(200))BEGINDECLARE done_flag INT DEFAULT 0;DECLARE column_name VARCHAR(200);DECLARE column_type VARCHAR(200);DECLARE cur1 CURSOR FOR SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE table_name = tbl_name AND table_schema=database();DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_flag = 1;OPEN cur1;REPEATFETCH cur1 INTO column_name, column_type;IF NOT done_flag THENSET @sql = CONCAT('ALTER TABLE ', tbl_name, ' CHANGE ', column_name, ' ', LOWER(column_name), ' ', column_type);PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;END IF;UNTIL done_flag END REPEAT;CLOSE cur1;END$$DELIMITER ;

以上为改变表中所有字段名的存储过程,使用DELIMITER指令改变语句结尾,如果不使用DELIMITER指令,则存储过程体内的语句会被解释成多行语句。

使用该存储过程需传入表名,示例:

CALL change_column_name('table_name');

使用以上方法可以简单快捷地将现有表的字段名全部改为小写。但需要注意表的外键、约束等是否受到影响,建议在操作前备份数据以便出现问题时及时恢复。

声明:关于《mysql把现有表字段改小写》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2065493.html