MySQL 使用SQL语句修改表名的实现


Posted in MySQL onApril 07, 2021

MySQL中可以使用rename table这个SQL语句来修改表名。

rename table这个SQL语句来修改表名的基本语法是:

RENAME TABLE <旧表名> TO <新表名>;

我们来把test表修改为test1表。

1、首先查看一下当前数据库中有哪些表。

mysql> show tables;
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test       |
| test2       |
+-------------------+
2 rows in set (0.00 sec)

2、执行重命名操作,把test修改为test1。

mysql> rename table test to test1;
Query OK, 0 rows affected (0.08 sec)

3、再次查看一下结果。

mysql> show tables;
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test1       |
| test2       |
+-------------------+
2 rows in set (0.00 sec)

补充:MySQL中修改表名,表属性名等的操作

alter table 表名 change 原列名 新列名 类型; --修改表的列属性名

alter table 表名 modify 列名 类型 ; --修改表的类类型

alter table 表名 drop 列名; --删除表的某一列

alter table 表名 add 列名 类型;--添加某一列

alter table 表名 rename 新表名; --修改表名

补充:MYSQL批量修改表前缀与表名sql语句

修改表名

ALTER TABLE 原表名 RENAME TO 新表名;

一句SQL语句只能修改一张表

show tables;

MySQL 使用SQL语句修改表名的实现

1.

SELECT
  CONCAT(
    'ALTER TABLE ',
    table_name,
    ' RENAME TO db_',
    substring(table_name, 4),
    ';'
  )
FROM
  information_schema. TABLES
WHERE
  table_name LIKE 'ct%';

MySQL 使用SQL语句修改表名的实现

批量复制一下到Notepad++中,只保留sql语句,再复制到mysql中执行

2.php脚本批量修改mysql数据库表前缀

<?php
//设置好相关信息
$dbserver='localhost';//连接的服务器一般为localhost
$dbname='corethink';//数据库名
$dbuser='root';//数据库用户名
$dbpassword='root';//数据库密码
$old_prefix='ct_';//数据库的前缀
$new_prefix='new_';//数据库的前缀修改为
if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ){
  return false;
}
  
if (!mysql_connect($dbserver, $dbuser, $dbpassword)) {
   print 'Could not connect to mysql';
  exit;
}
//取得数据库内所有的表名
$result = mysql_list_tables($dbname);
if (!$result){
  print "DB Error, could not list tablesn";
  print 'MySQL Error: ' . mysql_error();
  exit;
}
//把表名存进$data
 while ($row = mysql_fetch_row($result)) {
  $data[] = $row[0];
}
//过滤要修改前缀的表名
foreach($data as $k => $v){
  $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1);
  if($preg){
    $tab_name[$k] = $v1[2];
  }
}
if($preg){        
   foreach($tab_name as $k => $v){
    $sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`';
    mysql_query($sql);
  }
  print 数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";  
}else{ print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀; 
  if ( mysql_free_result($result) ){
    return true;
  }
}
?>

由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息

Deprecated: Function mysql_list_tables() is deprecated in … on line xxx

在php.ini中设置error_reporting,不显示方法过时提示信息

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

3.批量删除表

SELECT
  CONCAT(
    'drop table ',
    table_name,
    ';'
  )
FROM
  information_schema. TABLES
WHERE
  table_name LIKE 'uc_%';

执行查询,会自动生成出 drop table table_name这样的SQL语句

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

MySQL 相关文章推荐
Mysql Show Profile
Apr 05 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MySQL通过binlog恢复数据
May 27 MySQL
为什么代码规范要求SQL语句不要过多的join
Jun 23 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
Apr 02 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 MySQL
单机多实例部署 MySQL8.0.20
May 15 MySQL
MySQL数据库配置信息查看与修改方法详解
Jun 25 MySQL
详解Mysql 函数调用优化
Apr 07 #MySQL
MySQL复制问题的三个参数分析
Apr 07 #MySQL
MySQL pt-slave-restart工具的使用简介
Apr 07 #MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
You might like
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
Django中使用locals()函数的技巧
2015/07/16 Python
Python 文件管理实例详解
2015/11/10 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
实习单位接收函模板
2014/01/10 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
班主任寄语大全
2014/04/04 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
中班教师个人总结
2015/02/05 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
涨价通知
2015/04/23 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS