在实际的项目中,经常会出现类名和字段名使用驼峰命名法,但在数据库中又要求使用下划线命名法的情况。
这时候就需要批量修改数据库中的表、字段名。使用MySQL语句可以轻松实现这一功能:
RENAME TABLE `my_table` TO `myTable`;
ALTER TABLE `myTable` CHANGE `myColumn` `my_column` VARCHAR(255);
以上语句将表名 `my_table` 修改为 `myTable`,并将字段名 `myColumn` 修改为 `my_column`。
如果表中有多个字段需要修改,可以使用循环语句批量修改,例如:
DECLARE done INT DEFAULT FALSE;
DECLARE old_column_name VARCHAR(255);
DECLARE new_column_name VARCHAR(255);
DECLARE cur CURSOR FOR
SELECT COLUMN_NAME FROM information_schema.columns
WHERE table_name = 'myTable' AND table_schema = 'myDatabase';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO old_column_name;
IF done THEN
LEAVE read_loop;
END IF;
SET new_column_name = LOWER(REPLACE( CONCAT( LEFT(old_column_name, 1), MID(old_column_name, 2), UPPER(SUBSTRING(old_column_name FROM 2) )) , '_', '' ));
SET @sql = CONCAT('ALTER TABLE myTable CHANGE ', old_column_name, ' ', new_column_name, ' ',
COLUMN_TYPE, IF(IS_NULLABLE = 'NO', ' NOT NULL', ''), ' COMMENT '', COLUMN_COMMENT, ''');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
以上代码将 `myTable` 表中所有字段名中的下划线转换为驼峰命名法,例如将 `my_name` 转换为 `myName`。
总之,使用MySQL语句可以很方便地批量修改表、字段名,避免了手动一个一个修改的繁琐工作。